Conversion de caractères spéciaux

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)

Ö

Ö

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?

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)

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.

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 ?

Je joins une partie du fichier non sensible

https://www.excel-pratique.com/~files/doc2/piAkSClasseur1.xls

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/doc2/remplace_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

Salut cousinhub !

ça a l'air de bien marcher sauf pour " Ã " / " à "

un soucis avec les espaces ...?

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 !

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.

Bonjour VBA_padawan,

Pour répondre à ta 1ère question :

VBA_padawan a écrit :

A quoi correspond la valeur 0 to 2 ? Est ce bien en rapport avec le nombre d'élements dans A_Remplacer = Array("à", "é")?

C'est bien cela. Par contre, un tableau allant de 0 à 2 possède 3 valeurs (pour simplifier).

Une valeur avec l'indice 0

Une valeur avec l'indice 1

Une valeur avec l'indice 2.

Dans ton cas, tu n'as que 2 valeurs : "à" et "é".

Il te suffit de déclarer tes variables comme ça :

ReDim A_Remplacer(0 To 1) 
ReDim Remplacants(0 To 1)

Bonjour à tous,

Tout d'abord merci pour la merveilleuse solution proposée par cousinhub qui a éclairé ma journée ! J'ai un fichier espagnol à traiter avec ces histoires d'accent donc j'ai repris le code et je l'ai adapté à mes caractères. Cela fonctionne, en revanche j'ai 2 caractères qui me posent souci : ó (qui correspond au ó espagnol) et í- (qui correspond au í). Je copie colle ces caractère dans ma macro et cela refuse de se coller tel quel cela se transforme en Ã_. Du coup j'ai regardé dans la table des caractères ASCII pour ajouter Char() dans le code, car j'ai vu que tu avais fait cela pour certains caractères, mais je me planter quelque part mal car cela ne fonctionne pas non plus.

Si quelqu'un a une astuce ça serait top !

Bonne journée !


Bonjour à tous (désolée j'ai copié 2 fois le message je ne suis pas sûre d'avoir répondu au bon endroit la 1ère fois),

Tout d'abord merci pour la merveilleuse solution proposée par cousinhub qui a éclairé ma journée ! J'ai un fichier espagnol à traiter avec ces histoires d'accent donc j'ai repris le code et je l'ai adapté à mes caractères. Cela fonctionne, en revanche j'ai 2 caractères qui me posent souci : ó (qui correspond au ó espagnol) et í- (qui correspond au í). Je copie colle ces caractère dans ma macro et cela refuse de se coller tel quel cela se transforme en Ã_. Du coup j'ai regardé dans la table des caractères ASCII pour ajouter Char() dans le code, car j'ai vu que tu avais fait cela pour certains caractères, mais je me planter quelque part mal car cela ne fonctionne pas non plus.

Si quelqu'un a une astuce ça serait top !

Bonne journée !

Rechercher des sujets similaires à "conversion caracteres speciaux"