fonction replace et cas particulier

teter

XLDnaute Junior
Bonjour à tous,

J'ai de nouveau un petit souçi.
Dans une colonne (H), je regroupe les infos de deux sources : le première me donne des codes pays (ex FR, ITA, US, ....) et la deuxième me donne les noms des pays (ex France, Italie , USA, ...). Je peux me retrouver avec plus de 300 codes ou pays différents.

Je veux remplacer dans ma colonne les codes par des noms pour uniformiser et tout avoir en nom. J'ai essayé qqs trucs dont la fonction replace qui va me remplacer une chaine de caractère.

Columns("H:H").Select
Selection.Replace What:="FR", Replacement:="France"
Selection.Replace What:="ITA", Replacement:="Italie"
...

Le problème : si je veux remplacer mon code "FR" par "France", il va le faire à dans chaque mot contenant "FR" donc dans France, Afrique du Sud, ... (entre autres), je me retrouve alors avec : Franceance, AFranceique du Sud, ...

Une petite idée pour qu'il n'effectue les remplacements que lorsque la cellule de la colonne H contient seulement FR, ITA, US, ... rien devant ni après ?
Je me doute que ça doit être tout c.. (encore une fois) mais je bloque.

Merci beaucoup par avance.

Teter
 

Gael

XLDnaute Barbatruc
Re : fonction replace et cas particulier

Bonjour Teter,

Essaye en utilisant le paramètre "Matchcase" positionné à "True", comme cela il ne remplacera que s'il s'agit de majuscules et le "Fr" de "France" ne sera pas affecté.

Tu peux aussi mettre "Lookat:=XlWhole" qui n'effectuera de remplacement qui si la totalité de la cellule est égale à l'argument de recherche.

@+

Gael

Et bonjour Ludo27.
 
Dernière édition:

kwakos

XLDnaute Occasionnel
Re : fonction replace et cas particulier

Salut le forum, teter, ludo27, Gael

Je reprend ce fil car mon problème est l'inverse de teter et je ne comprend pas pourquoi ?
j'ai lancé
Sheets(1).UsedRange.Replace What:="é", Replacement:="É"

cela ne me change QUE les "é" seul, mais en cellule A1 j'ai "été" qui ne change pas...
Pourquoi ? Y a t il un code a rajouter ?

Merci a tous
 

kwakos

XLDnaute Occasionnel
Re : fonction replace et cas particulier

Salut le forum, Teter, Ludo27, Gael

Je remonte ce fil car mon problème à moi est exactement l'inverse.
Je souhaite que tous mes caractères "é" soient remplacés tel que :

Sheets(1).UsedRange.Replace What:="é", Replacement:="É"

Mais voilà, ce code ne me remplace que les "é" seuls et pas inclus dans un mot comme "hérisson".

Quelqu'un aurait une idée du pourquoi du comment que qu'est-ce ?

Merci à tous
 

pierrejean

XLDnaute Barbatruc
Re : fonction replace et cas particulier

il faut dans ton cas:

Code:
Sheets(1).UsedRange.Replace What:="é", Replacement:="É"[COLOR=blue], lookat[/COLOR][COLOR=blue]:=xlPart[/COLOR]

le precedent remplacement avait certainement été fait avec lookat:=xlwhole

extrait de l'aide concernant Replace (a consulter) :
Les valeurs des arguments LookAt, SearchOrder, MatchCase et MatchByte sont enregistrées à chaque fois que vous utilisez cette méthode. Si vous n'indiquez aucune valeur la fois suivante, ce sont les valeurs enregistrées qui sont utilisées. Le fait de donner une valeur à ces arguments modifie les paramètres de la boîte de dialogue Rechercher. De même, modifier les paramètres de la boîte de dialogue Rechercher modifie les valeurs enregistrées qui sont retenues lorsque vous omettez les arguments en employant la méthode. Pour éviter toute ambiguïté, donnez des valeurs à ces arguments à chaque emploi de la méthode.
 

kwakos

XLDnaute Occasionnel
Re : fonction replace et cas particulier

Le forum, Pierrejean

Merci pour cette réponse, en effet je ne savais pas que cela enregistrait automatiquement le précédent code xlwhole, ça doit être ça, je teste mais ayant lu bcp de tes interventions, j'ai pleinement confiance,

Merci encore

kwakos
 

Statistiques des forums

Discussions
312 193
Messages
2 086 062
Membres
103 110
dernier inscrit
Privé