remplacer des caracteres spéciaux dans une colonne vba

egman

XLDnaute Occasionnel
Bonjour à tout le forum,

Je reviens vers car après multiples recherches sur la toile je ne trouve pas mon bonheur.

Voici mon problème :
J'importe un fichier texte dans Excel que je met en forme afin d'utiliser un certain nombre de colonnes.
Dans ce fichier texte j'ai des caractères spéciaux qui se sont intercalés dans mes cellules.
Je cherche donc un moyen de remplacer ces caractères spéciaux par d'autres caractères mais dans toute ma colonne à la fois.

Je vous joint un petit fichier pour mieux comprendre avec le bout de code que j'essaye de faire fonctionner.
Pourtant cela devrait fonctionner avec la méthode Range...

Si quelqu'un a une idée pour m'aiguiller ce serait sympa.

D'avance Merci à tous
 

Pièces jointes

  • Essai_remplace.xls
    14.5 KB · Affichages: 137

mth

XLDnaute Barbatruc
Re : remplacer des caracteres spéciaux dans une colonne vba

Bonjour egman

Un petit essai, en attendant une meilleure proposition,

Code:
Sub remplacerCaracteres()
Set plage = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)

    plage.Replace What:="~?", Replacement:="µ", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False
    plage.Replace What:="¥", Replacement:="±", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False
    plage.Replace What:="~?", Replacement:="°", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False

End Sub

Bien à toi,

mth
 

egman

XLDnaute Occasionnel
Re : remplacer des caracteres spéciaux dans une colonne vba

Bonjour egman

Un petit essai, en attendant une meilleure proposition,

Code:
Sub remplacerCaracteres()
Set plage = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)

    plage.Replace What:="~?", Replacement:="µ", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False
    plage.Replace What:="¥", Replacement:="±", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False
    plage.Replace What:="~?", Replacement:="°", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False

End Sub

Bien à toi,

mth
Bonjour mth,
Merci pour ta réponse....mais petit hic...il bute sur "plage" variable non définie...! ! !
J'ai défini ma colonne A comme plage mais rien n'y fait....désolé

Manu
 

egman

XLDnaute Occasionnel
Re : remplacer des caracteres spéciaux dans une colonne vba

re :)

Tu dois avoir un Option Explicit quelque part, ce qui est très bien :)

Ajoute en première ligne de code la définition:


Ca devrait aller.

Bien à toi,

mth

Edit: Oups ... pardon JP, je ne t'avais pas vu..

Bonjour JP14

merci à vous deux pour l'explication.

Apparemment cela fonctionne ....je dis apparemment car en fait il remplace dans la cellule tout le texte par le caractère indiqué dans le code
A savoir : au lieu d'avoir
QUARTZ 10mHz 25° il me met °°°°°°°°°°°°°°°°°°°° dans la cellule.
Dailleurs lorsque je veux lui indiqué un caractère du type ¥ dans le code il me met systématiquement un ?
N'y aurait il pas un rapport avec le format de texte importé et qui serait mal interprété dans le code ?
J'essaierai avec mon texte au boulot demain et vous tiendrait au courant.
Mais à priori cela fonctionne.
Encore merci de votre aide je vais essayer de me débrouiller.

A+
 

mth

XLDnaute Barbatruc
Re : remplacer des caracteres spéciaux dans une colonne vba

re :)

bêtise de ma part, et je n'avais pas vu, essaie comme ceci:
Code:
Sub remplacerCaracteres()
Dim plage As Range

Set plage = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)

    plage.Replace What:=ChrW(256), Replacement:="µ", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False
    plage.Replace What:=Chr(165), Replacement:=Chr(177), LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False
    plage.Replace What:=ChrW(358), Replacement:=Chr(176), LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False

End Sub

Je viens d'apprendre grâce à toi que quand le code d'un caractère dépassait 255, il fallait utiliser ChrW au lieu de Chr :)

De mon coté ça fonctionne, reste à voir s'il en est de même chez toi, @ ++ :)

m
 

egman

XLDnaute Occasionnel
Re : remplacer des caracteres spéciaux dans une colonne vba

En fait j'ai crié victoire trop vite....
Voici ce que je cherche à faire :
CAPA ALU 220┬ÁF 16VDC 20% THT P3.5 105┬░C ESR 0.25 => CAPA ALU 220µF 16VDC 20% THT P3.5 105°C ESR 0.25
CRYSTAL 32.768kHz ┬▒20ppm/12pF SMT 3.8x8.7mm => CRYSTAL 32.768kHz ±20ppm/12pF SMT 3.8x8.7mm

Merci pour votre aide
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal