Substitution du caractère "*"

ttlan

XLDnaute Nouveau
Bonjour,

Sous Excel 2000, j'ai une colonne de données (la colonne AC actuellement) dont certaines données contiennent 1 ou des astérisques.

Il me faut les remplacer par un tiret ("-").

Microsoft donne des pistes concernant la boîte "Rechercher / Remplacer"
How to find and replace tildes and wildcard characters in Excel
Finding/Replacing Tildes and Wildcard Characters

Moi, j'ai besoin d'automatiser cela et j'ai beau essayer avec "Substitue", je me fais jeter avec ce :mad: de wildcard.

Quelle serait la solution à utiliser ?

Merci
 

Cousinhub

XLDnaute Barbatruc
Re : Substitution du caractère "*"

Bonsoir,
avec ce code :

Code:
    Selection.Replace What:="~*", Replacement:="-", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

En manuel, Edition/Remplacer :
mettre : ~* (tilde et étoile)
ne pas sélectionner la totalité du contenu
 

ttlan

XLDnaute Nouveau
Re : Substitution du caractère "*"

Bonsoir bhbh

Heuuuuuuuuuu... J'en fais quoi de ce code ? Je le met où ? :eek:

D'autre part, il faut que cela ne s'applique qu'à 2 des colonnes de mon tableau, pas du tout au reste du tableau.

Merci
 

Cousinhub

XLDnaute Barbatruc
Re : Substitution du caractère "*"

Re-,
donc, pour le faire manuellement :

tu sélectionnes tes deux colonnes
tu fais Edition/Remplacer (ou Ctrl + H)
Dans la case Rechercher, tu entres ~* soit un tilde (AltGr + é) suivi de l'étoile
Dans la case Remplacer, tu entres - (un tiret)
Tu cliques sur Options, et tu décoches "Totalité du contenu de la cellule", puis Remplacer tout

Le code, c'est pour une macro, si jamais tu en avais eu besoin
 

ttlan

XLDnaute Nouveau
Re : Substitution du caractère "*"

Re bhbh

Merci.

Pour le faire manuellement, j'avais fais une recherche dans la KB et j'avais effectivement trouvé

How to find and replace tildes and wildcard characters in Excel
How to find and replace tildes and wildcard characters in Excel
et
Finding/Replacing Tildes and Wildcard Characters
Finding/Replacing Tildes and Wildcard Characters

Donc c'est le coup de la macro qui m'intéresse car le contenu de cette feuille (plusieurs milliers de lignes) change assez régulièrement et je souhaiterais oublier complètement cette macro qui s'exécuterait donc systématiquement (comme s'il y avait une fonction "substitue" dans ces deux colonnes qui me préoccupent).

Et, pour être complètement clair, les macros dans Excel, je ne sais même pas par quel bout cela commence.

Merci
 

Cousinhub

XLDnaute Barbatruc
Re : Substitution du caractère "*"

Re-,
pas bien simple de deviner ce que tu veux??

Tu fais une extraction (un copier coller) de données en provenance d'un autre fichier, ou comment obtiens-tu tes données en colonne AC?

Perso, sélectionner la colonne AC, faire le raccourci Ctrl + H, puis taper ~* ne doit pas prendre trop de temps????

Sinon, à quel moment veux-tu faire le remplacement?
 

Cousinhub

XLDnaute Barbatruc
Re : Substitution du caractère "*"

Pour la macro,
Fais un clic droit sur le nom de l'onglet concerné, et sélectionne "Visualiser le code"
Tu as alors une feuille blanche, tu es sur l'éditeur VBE
Copie ce code dans la feuille

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Columns(29).Replace What:="~*", Replacement:="-", LookAt:=xlPart
End Sub

Dès que tu changeras quelque chose dans ta feuille, les * vont être remplacées par des tirets dans la colonne 29 soit "AC"
Ferme l'éditeur VBE, et fais des essais
 

ttlan

XLDnaute Nouveau
Re : Substitution du caractère "*"

Re

Les données que je reçois sont quelques milliers de lignes de 5 colonnes que je recopie dans les premières colonnes de ma feuille (C à G actuellement).

L'une de ces colonnes (la colonne "E" actuellement) est une suite de phrases (des noms d'objets) plus ou moins mal formées contenant des trucs comme du code html et des entités html ou unicode.

Une petite foultitude de "substitue" conduit à avoir, en colonne AC, des phrases propres mais il reste ce caractère "*" que je n'arrive pas à remplacer.

J'aurais souhaité quelque chose qui se comporterait, en colonne AC, comme les "substitue" qui précèdent.

L'idée n'est pas d'organiser ma paresse mais de penser à celui qui me remplacerait si je dois m'absenter et donc d'automatiser complètement le travail, c'est à dire : copie des données reçues -> récupération des données transformées et pas d'intervention entre les deux.

Merci de ton assistance.

Cordialement
 

Cousinhub

XLDnaute Barbatruc
Re : Substitution du caractère "*"

Re-,
chez moi, :

Code:
=SUBSTITUE(E1;"*";"-")

fonctionne, et remplace les * de la cellule E1 par des tirets

Maintenant, plutôt que de travailler dans le flou, il vaudrait peut-être mieux joindre un fichier exemple, pour voir ce qu'on peut faire.
 

Cousinhub

XLDnaute Barbatruc
Re : Substitution du caractère "*"

Bonsoir,
avec cette formule, peut-être (pour la cellule B5, à mettre en C5) :

Code:
=SUBSTITUE(GAUCHE(GAUCHE(DROITE(B5;NBCAR(B5)-21);NBCAR(B5));NBCAR(GAUCHE(DROITE(B5;NBCAR(B5)-21);NBCAR(B5)))-5);"*";"-")
 

ttlan

XLDnaute Nouveau
Re : Substitution du caractère "*"

Re,

Merci.

Honte sur moi ! La substitution de l'astérisque fonctionne. Dans mes substitutions imbriquées il y avait un
SUBSTITUE(A1;""";"-")
au lieu de
SUBSTITUE(A1;"""";"-")
C'est lui qui plantait régulièrement ma formule mais Excel me disait que l'erreur était sur la substitution de l'astérisque.

Merci pour ton dévouement.

Bonne soirée
 

Statistiques des forums

Discussions
312 299
Messages
2 086 986
Membres
103 419
dernier inscrit
mk29