Garder symbole delta, alpha manipulation de string

youki

XLDnaute Occasionnel
Bonjour,
une macro que je viens de creer utilise les copier coller et envoies les infos dans des cellules.
Je m'apercois que mes cellules transforme mes symboles delta en D et alpha en a... et ainsi de suite...

Code:
Dim separation() As String
    Dim verso As String
    Dim i As Integer
For i = 2 To Sheets("colonne_maker").Range("A300").End(xlUp).Row
        separation = Split((Range("A" & i).Value), "/")
        Sheets("S1").Range("A" & i).Value = separation(0)
        Sheets("S1").Range("B" & i).Value = separation(1)
    Next i

voila comment je passe mes infos d'une cellule à une autre cellule dans S1. Pourquoi excel modifie les symboles entre ma cellule origine et ma cellule arrivée, alors que je ne précise rien.

Comment remédier à cela?
je vous remercie d'avance.

Pour l'anecdote qui vous fera marrer... je m'en rend compte au bout de deux jours d'édition de macro soit + de 100 fichiers textes d'environs 40 lignes. Vraiment, mais vraiment que du bonheur.
 

Staple1600

XLDnaute Barbatruc
Re : Garder symbole delta, alpha manipulation de string

Bonjour à tous

youky
Et comme ceci , il se passe quoi ?

PS:Je te laisse remettre les noms des feuilles adéquats
Code:
Sub test()
Dim i As Long
With Sheets(2)
For i = 2 To .Range("A300").End(xlUp).Row
Sheets(1).Range("A" & i).Value = Split(.Range("A" & i).Text, "/")(0)
Sheets(1).Range("B" & i).Value = Split(.Range("A" & i).Text, "/")(1)
Next i
End With
End Sub
 

youki

XLDnaute Occasionnel
Re : Garder symbole delta, alpha manipulation de string

nop, ça ne change rien. un D apparait
je suis dépité. En parallèle de ma question, j'essaye de mettre un delta dans mes fichier texte (unicode) avec un Alt+0394... je me retrouve avec un S norvégien... c'est ridicule, mais bon c'est juste à livrer pour demain :/ bien joué youki...
 

Odesta

XLDnaute Impliqué
Re : Garder symbole delta, alpha manipulation de string

Bonjour youki et Staple1600

Les symboles sont en fait des caractères écris grace à la police Symbol ! Le D reste un D, mais il est affiché en temps que delta.

Il va donc falloir jouer sur le format, voici un exemple de code pour mettre le premier caractère de la cellule A1 en police Symbol , le reste en Arial :

Range("A1").Characters(Start:=1, Length:=1).Font.Name = "Symbol"
Range("A1").Characters(Start:=2).Font.Name = "Arial"

EDIT : Bonjour Hervé et le fils


Cordialement
Olivier
 
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : Garder symbole delta, alpha manipulation de string

Bonjour à tous
À tout hasard :
Code:
[COLOR="DarkSlateGray"][B]Sub toto()
Dim separation$()
Dim i!
   For i = 2 To Sheets("colonne_maker").Range("A300").End(xlUp).Row
      separation = Split((Range("A" & i).Value), "/")
      Sheets("S1").Range("A" & i).Value = separation(0)
      Sheets("S1").Range("A" & i).Font.Name = "Symbol"
      Sheets("S1").Range("B" & i).Value = separation(1)
      Sheets("S1").Range("B" & i).Font.Name = "Symbol"
   Next i
End Sub[/B][/COLOR]
Sans voir la structure exacte des données, difficile d'en dire plus.​
ROGER2327
#3073
 

youki

XLDnaute Occasionnel
Re : Garder symbole delta, alpha manipulation de string

Merci de votre aide, mais mon symbole est en générale seul et placé aléatoirement bien sûr :)
Donc je dérive sur une dernière question:

Comment puis je détecter chaque symbole dans une chaine: je cherche uniquement alpha et delta? Sachant qu'il correspond à Alt+0394.
 

Odesta

XLDnaute Impliqué
Re : Garder symbole delta, alpha manipulation de string

Re, Bonjour le fils
Youki, pouvez-vous nous montrer un exemple de l'un des 100 fichiers ?

Si on arrive à comprendre quand c'est un Delta, ou Alfa et quand c'est un D ou un a, on pourra alors utiliser la fonction Characters(Start:=?, Length:=1).Font.Name = "Symbol" aux bons moments pour les cellules concernées.
 

Lii

XLDnaute Impliqué
Re : Garder symbole delta, alpha manipulation de string

Bon soir,

es-tu sûr que c'est cette partie de macro qui est en cause ?
Voir le fichier joint (0394 est en hexadécimal !).
 

Pièces jointes

  • Split.zip
    7.1 KB · Affichages: 47
  • Split.zip
    7.1 KB · Affichages: 52
  • Split.zip
    7.1 KB · Affichages: 50

ROGER2327

XLDnaute Barbatruc
Re : Garder symbole delta, alpha manipulation de string

Re...
Merci de votre aide, mais mon symbole est en générale seul et placé aléatoirement bien sûr :)
Donc je dérive sur une dernière question:

Comment puis je détecter chaque symbole dans une chaine: je cherche uniquement alpha et delta? Sachant qu'il correspond à Alt+0394.
N'est-il vraiment pas possible de déposer quelques échantillons des données à traiter ?​
ROGER2327
#3077
 

youki

XLDnaute Occasionnel
Re : Garder symbole delta, alpha manipulation de string

Bon et bien c'est clair je n'ai pas le choix...

Si quelqu'un peut m'aider, maintenant c'est sûr, je dois:

1 - Détecter la présence de symbole (trouver une font ds une cellule en vba? possible?)
2 - La localiser
3 - La remplacer par un caractère normal (style "?" par exemple)

4- vous remercier si quelqu'un a une idée.

Je peine surtout sur la recherche du symbole dans la cellule? comment la trouver de façon sur pour la remplacer avant l'envoi vers le fichier texte.

D'avance merci
 

Odesta

XLDnaute Impliqué
Re : Garder symbole delta, alpha manipulation de string

Bonjour Youki et le fils.

Désolé d'insister, mais pouvez-vous mettre un morceau du fichier en PJ ? car ce n'est pas évident de proposer des solutions autrement

Cordialement
Olivier
 

youki

XLDnaute Occasionnel
Re : Garder symbole delta, alpha manipulation de string

Voila ci joint le fichier. Vous trouverez les commentaires dans modules1 et fonction.

Je reprécise à l'origine mes données arrivent d'un copier coller d'un excel dans la partie colonne maker (j'ai laisser un exemple pour que vous puissiez voir le fonctionnement n'hésitez pas à cliquer) ensuite on va ds l'onglet S1 ou les colonnes se sont recopiées. Enfin on clic sur S1 ou S2 ou S3 selon le format (imprimante spécifique) ET LA.... Je souhaite que mes delta et alpha puissent être enregistré dans un fichier sous la forme respective d'un ? et d'un ' .

Si la transformation peut être gérer dans la fonction traitement_alpha_beta() c'est mieux. Car je ferais en sorte de transformer des le debut les symboles.

Encore merci pour le suivi.

J'attends vos suggestion

PS: D'avance, Non ma solution n'est pas de passer mon fichier texte en unicode ou utf8, l'imprimante ne les comprend pas. (je précise pour les petit futé rapide :) )
 

Pièces jointes

  • tms_maker.zip
    32.2 KB · Affichages: 45

Lii

XLDnaute Impliqué
Re : Garder symbole delta, alpha manipulation de string

Bon jour,

c'est plus clair avec un exemple.
A essayer (conversion Delta en ? avant copie)
Code:
Dim derli As Integer
Sub separateur()

    Dim separation() As String
    Dim verso As String
    Dim i As Integer
    
        Sheets("S1").Select
       ...
    '## ICI PERTE DU DELTA LORS DE LA COPIE DANS LE FIHIER TXT
    '## SI POSSIBLE ICI OU MEME AVANT DS LA PROG REMPLACER LES SYMBOLES PAR DES EQUIVALENTS RESPECTIF (DANS MON CAS PAS LE CHOIX: DELTA -> Remplacé par ? et alpha -> remplacé par '
    '[B]~~~~~~~> voir pour delta
    derli = Sheets("colonne_maker").Range("A300").End(xlUp).Row
    remplaceDelta[/B]
        For i = 2 To [B]derli[/B]
        separation = Split((Range("A" & i).text), "/")
        Sheets("S1").Range("A" & i).Value = Fonction.traitement_alpha_beta(separation(0))
        Sheets("S1").Range("B" & i).Value = Fonction.traitement_alpha_beta(separation(1))
        
        With monfic
         .writeLine Sheets("S1").Range("A" & i).Value
         .writeLine Sheets("S1").Range("B" & i).Value
        End With
    Next i
    monfic.Close
 End Sub

[B]Sub remplaceDelta()
    Sheets("colonne_maker").Range("A2:A" & derli).Select
    With Selection
    .Font.Name = "Arial"
    .Replace What:=ChrW(916), Replacement:="?", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
        ReplaceFormat:=False
    .Font.Name = "Times New Roman"
    End With
End Sub[/B]

0394 en hexa = 916 en décimal
 

Pièces jointes

  • Remplacer Delta Par .zip
    24.9 KB · Affichages: 40
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 252
Messages
2 086 631
Membres
103 281
dernier inscrit
TOUFIK82