Conversion de caractères spéciaux Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
c
charly_xiii
Jeune membre
Jeune membre
Messages : 36
Inscrit le : 18 septembre 2009
Version d'Excel : 2007 FR

Message par charly_xiii » 29 octobre 2009, 10:34

Bonjour !

J'ai un p'tit soucis sur mon CSV importé depuis ma base de données
En effet tous les caractères spéciaux sortent transformés.

J'aimerais avoir une formule à appliquer sur l'ensemble de ma feuille pour tout rétablir en un clic...

Un merci pour votre aide

Voila mes correspondances :

î
î

é
é

→


Ü
Ü

ù
û

â
â

è
è

"à" (espace après le caractère)
à

’
'

€


®
®

Ø
Ø

°
°

ç
ç

ô
ô

«
"

»
"

û
û

ê
ê

…
..

/ø
ø

ø
ø

À
A

É
E

È
E

" Ã " (Espaces de part et d'autre du caractère)
" à " (Espaces de part et d'autre du caractère)

Ö
Ö
v
vba-new
Membre impliqué
Membre impliqué
Messages : 2'946
Appréciations reçues : 2
Inscrit le : 13 mai 2009
Version d'Excel : 2010 FR - 2013 FR

Message par vba-new » 29 octobre 2009, 11:50

Bonjour à tous,

charly_xiii peux-tu préciser l'endroit où se trouvent les données à modifier.

Est-ce dans la même colonne? Même ligne? Sur toute la feuille?

Mieux, pourrais-tu joindre un bout de fichier afin de mesurer l'ampleur du problème?
vba-new
c
charly_xiii
Jeune membre
Jeune membre
Messages : 36
Inscrit le : 18 septembre 2009
Version d'Excel : 2007 FR

Message par charly_xiii » 29 octobre 2009, 12:22

RE

Les données sont confidentielles je ne pourraia pas les divulguer

Cela concerne des données sur toute une feuille type excel xls
(Toutes lignes et toutes colonnes)
d
dubois
Passionné d'Excel
Passionné d'Excel
Messages : 9'249
Inscrit le : 8 décembre 2007
Version d'Excel : Vista Office 2007FR

Message par dubois » 29 octobre 2009, 12:36

Bonjour à tous,

Cela ressemble à une police Wisiging ,
en enregistrant pour remettre en police normale:
Sub Macro2()
    Cells.Select
    With Selection.Font
        .Name = "Arial"
        .FontStyle = "Normal"
        .Size = 10
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
        .ThemeFont = xlThemeFontNone
    End With
    Range("A1").Select
End Sub
à tester
Amicalement
Claude.
Faire simple, c'est ce qui est le plus compliqué ! et vice versa (à méditer)
c
charly_xiii
Jeune membre
Jeune membre
Messages : 36
Inscrit le : 18 septembre 2009
Version d'Excel : 2007 FR

Message par charly_xiii » 30 octobre 2009, 07:34

Bonjour Claude !
Malheureusement l'execution de la macro ne donne aucun resultat

Les caractères demeurent inchangés...

J'ai entendu parler de codage UTF8 ...
Cela est il en rapport ?
c
charly_xiii
Jeune membre
Jeune membre
Messages : 36
Inscrit le : 18 septembre 2009
Version d'Excel : 2007 FR

Message par charly_xiii » 30 octobre 2009, 07:39

Je joins une partie du fichier non sensible

https://www.excel-pratique.com/~files/do ... sseur1.xls
c
cousinhub
Membre impliqué
Membre impliqué
Messages : 2'038
Appréciations reçues : 20
Inscrit le : 28 mai 2009
Version d'Excel : xl 2016

Message par cousinhub » 30 octobre 2009, 08:07

Bonsoir,

essaie ce code :
Sub remplace_csv()
ReDim A_Remplacer(0 To 26)
ReDim Remplacants(0 To 26)
Dim I As Byte
A_Remplacer = Array("î", "é", "→", "Ü", "ù", "â", "è", "à", "’", "€", "®", "Ø", "°", "ç", "ô", _
                  "«", "»", "û", "ê", "…", "/ø", "ø", "À", "É", "È", " à ", "Ö")
Remplacants = Array("î", "é", Chr(26), "Ü", "û", "â", "è", "à", "'", "€", "®", "Ø", "°", "ç", "ô", _
                  Chr(34), Chr(34), "û", "ê", "..", "ø", "ø", "A", "E", "E", " à ", "Ö")
For I = 0 To 26
    Cells.Replace What:=A_Remplacer(I), Replacement:=Remplacants(I), LookAt:=xlPart
Next I
End Sub
Fichier joint :

https://www.excel-pratique.com/~files/do ... ce_csv.xls

Bonne soirée

Edit, le fichier a été joint afin d'éviter les caractères non imprimables dans le post.
Prendre le code qui se situe dans le module 1
1/ Notre ignorance n'est pas aussi vaste que notre incapacité à utiliser ce que nous savons (Marion King Hubbert - Géophysicien américain - 1903/1989)
2/ Notre seule récompense est un "Merci".....
c
charly_xiii
Jeune membre
Jeune membre
Messages : 36
Inscrit le : 18 septembre 2009
Version d'Excel : 2007 FR

Message par charly_xiii » 30 octobre 2009, 08:23

Salut cousinhub !

ça a l'air de bien marcher sauf pour " Ã " / " à "
un soucis avec les espaces ...?
c
charly_xiii
Jeune membre
Jeune membre
Messages : 36
Inscrit le : 18 septembre 2009
Version d'Excel : 2007 FR

Message par charly_xiii » 30 octobre 2009, 08:44

Hum... apparement j'ai du me mélanger les pinceaux car en réessayant par copier/coller de la feuille csv en feuille 1 de ton fichier tout marche nickel !!!!

Un grand merci...

Comme d'habitude, toujours impéccable !!!

Vive cousin HUB !
V
VBA_padawan
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 9 avril 2013
Version d'Excel : 2010 EN

Message par VBA_padawan » 9 avril 2013, 11:10

Bonjour,

Je cherche un code similaire afin de remplacer tous les caractères spéciaux présents dans les différentes cellules d'une même colonne de mon fichier excel 2010 par leur valeur xHtml : "à" => "à"

Du coup j'ai essayé d'utilser le code précédent en remplaçant les valeurs. Alors ça fonctionne par contre j'ai une erreur du type: Run type error '9' subscript out of range.

Ci-dessous ma version test avec simplement 2 caractères spéciaux, je rajouterai tous les autres une fois que celle-ci fonctionnera :).
Sub Caractere_speciaux()

ReDim A_Remplacer(0 To 2) 
ReDim Remplacants(0 To 2)
Dim I As Byte
A_Remplacer = Array("à", "é")
Remplacants = Array("à", "&ecute;")
For I = 0 To 2
    Cells.Replace What:=A_Remplacer(I), Replacement:=Remplacants(I), LookAt:=xlPart
Next I
End Sub
A quoi correspond la valeur 0 to 2 ? Est ce bien en rapport avec le nombre d'élements dans A_Remplacer = Array("à", "é")?

Si jamais vous avez une autre technique pour remplacer les caractères spéciaux par leur valeur xhtml, je suis également preneur. Je suis tombé là dessus et je me suis dis que c'est une bonne piste de départ. par contre, je vais m'amuser pour insérer tout les caractères spéciaux ^^.

Merci pour votre aide.
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message