Supprimer le caractère "≈" avec une macro

Bonjour,

dans un document se trouve le caractère spécial "≈", comme dans le fichier en exemple dans la colonne "B". Ce caractère doit être supprimé afin de pouvoir faire des calculs. Le fichier que j'utilise étant modifié plusieurs fois par jour, à chaque fois je fais une recherche sur la colonne et je remplace le caractère par un espace.

Cependant afin d'automatiser cela, j'aimerai pouvoir le supprimer en passant par une macro. J'ai essayé de le faire, mais cela ne fonctionne pas. Auriez vous une idée ?

Merci pour votre aide

Bonjour,

L'enregistreur de macro produit un code qui est rarement utilisable en l'état, car il reproduit "bêtement" les actions réalisées et produit un code qui n'est souvent ni "généralisé" (pour des cas similaires sur des plages variables, etc), ni optimisé (on sélectionne des objets pour interagir avec eux, ce qui est inutile). Dans votre cas, vous avez du l'activer après sélection de la plage concernée, le remplacement s'applique alors sur ce qui est déjà sélectionné, donc potentiellement pas là où vous en avez besoin.

Une proposition :

Sub RemplacePerso()

Sheets("NomFeuille").Cells.Replace What:="≈", Replacement:=" ", LookAt:=xlPart

End Sub

Hello,

Pas forcément besoin de VBA, voici une solution en rajoutant simplement une colonne.

A+,

Kilian

Merci pour vos réponses.

J'ai essayé d'adapter la macro avec votre proposition, mais cela n'a pas fonctionné.

Concernant l'ajout d'une colonne, j'y avais déjà pensé, mais le fichier initial contenant déjà beaucoup de données, je préfererai ne pas avoir à m'en servir.

J'ai essayé d'adapter la macro avec votre proposition, mais cela n'a pas fonctionné.

Il faut juste changer le nom de la feuille concernée pour qu'il corresponde à votre fichier. La macro ne se déclenche pas automatiquement, il faut la lancer manuellement. Si vous n'y arrivez pas, il faudra donner plus de détails sur ce que vous obtenez (car un simple "ça ne fonctionne pas" n'est pas d'un grand secours !).

Bonjour Pédro , bonjour tout le monde.

Je ne pense pas que le tilde soit = au double tilde. le problème c'est que double tilde n'existe pas en ASCII mais uniquement en caractère unicode.

Et pas sur que l'on puisse l'utiliser dans un code vba avec la fonction "Chr"

Le plus simple c'est de faire une macro qui remplace le premier caractère ( peu importe à quoi il ressemble )

Sub remplacercaractere()
'remplacer le 1er caractere par un "double tilde"
Dim c As Range, sh1, LastRw As Long
Set sh1 = Sheets("Feuil1")
LastRw = sh1.Cells(Rows.Count, 2).End(xlUp).Row

For Each c In sh1.Range("B2:B" & LastRw)

    c.Value = " " & Right(c, Len(c) - 1)

Next c
Set sh1 = Nothing
End Sub

oui, oui j'ai fait tout cela.

Mais la macro ne fait la suppression.

oui, oui j'ai fait tout cela.

Mais la macro ne fait la suppression.

Oui son code recherche un " ~ " mais votre fichier contient des doubles tildes ... regardez plus haut le code qui remplacera le premier caractère peu importe à

quoi il ressemble.

merci Xmenpl, je viens d'essayer votre code, et effectivement la suppression fonctionne. Je n'avais pas pensé à cette façon de faire.

Merci à tous pour vos réponses et votre temps.

Très bonne journée

Bonjour Pédro , bonjour tout le monde.

Je ne pense pas que le tilde soit = au double tilde. le problème c'est que double tilde n'existe pas en ASCII mais uniquement en caractère unicode.

Salut Xmenpl,

Bien vu ! J'ai recopié bêtement le code présent dans le fichier, sans m'apercevoir de cette erreur. Par contre, je ne vois pas de raison pour que ça ne fonctionne pas une fois le bon caractère utilisé (j'ai édité mon 1er msg).

Re Pédro.

J'ai essayé de plusieurs façon avec un copié collé du caractère spécial dans le code vba le "double tilde" se change en " ? "

En essayant avec Chr( 2248) qui est le code Unicode du double tilde ; cette fois-ci je me retrouve avec un " E " en valeur vba...

Du coup j'ai cherché le remplacement du premier caractère uniquement.

Effectivement, j'ai fait un certains nombre de tests sans succès de mon côté, ce caractère n'est pas digéré par VBA ! Au mieux, devient ~ (ce qui est assez frustrant !).

Par contre, Chr() s'utilise pour la table ASCII, qui s'arrête à 255 caractères. Pour utiliser la table UNICODE, il faut passer par ChrW(). Mais chez moi, ChrW(2248) renvoie ?.

Oui j'avais aussi essayé avec chrW idem. j'ai même essayer avec un double tilde seul dans une cellule pour essayer de l'utiliser en variable.

Pas de résultat concluant non plus. Du coup reste plus que le remplacement premier caractère sauf si quelqu'un passe par ici et nous

donne la solution du double tilde en vba

Rechercher des sujets similaires à "supprimer caractere macro"