VBA Excel - rechercher remplacer par la valeur d'une cellule

Minh

XLDnaute Nouveau
Bonjour à tous :)


Je coince un peu sur mon code (qui fonctionne) que j'aimerai améliorer. Je suis sûr que c'est tout bête mais je ne trouve pas ... :(

C'est un simple rechercher/remplacer sur une plage de cellule précise. Par contre, afin d'éviter d'avoir à rentrer dans le code pour modifier "la valeur qui remplacera", je me demandais s'il n'existait pas un moyen de faire référence à une cellule, qui est sur une feuille précise, que je modifierai si nécessaire. (gain de temps et de sécurité)

Range("C1:C400").Select
Selection.Replace What:="*", Replacement:="51210000", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False


J'ai cherché quelque chose du genre
Replacement:=Sheet"source".select Range("A5").value
A5 étant la cellule que je modifierai sous excel.

j'ai cherché sur le net (mais les mots clés sont trop courant et me permettent pas de trouver la réponse).

Peut-être une autre formule simplifierait les choses ?
Genre une boucle qui va tester la cellule C1 à C400 et s'il y'a "*" le remplacera par une cellule que j'aurai défini ? - j'ai juste peur que ça soit un peu plus lourd que la méthode exposée ci-dessus.
Si vous me répondez que "oui, la boucle est la solution la plus simple et n'alourdit pas vraiment ta macro", alors je vais chercher à développer cette boucle.

Mais si par contre il existe une solution comme je la recherche, je suis tout ouïe :)


En vous remerciant par avance de l'attention que vous porterez à mon problème

Bien Cordialement
 

Efgé

XLDnaute Barbatruc
Re : VBA Excel - rechercher remplacer par la valeur d'une cellule

Bonjour Minh,
Essai avec
VB:
Replacement:=Sheet"source".Range("A5").value
Cordialement
Edit
On dois pouvoir se passer du vilain select
VB:
Range("C1:C400").Replace What:="*", Replacement:=Sheet"source".Range("A5").value, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
 
Dernière édition:

Minh

XLDnaute Nouveau
Re : VBA Excel - rechercher remplacer par la valeur d'une cellule

Bonjour Efgé,


Merci pour ta prompte réponse.

Lorsque je remplace "5121000" par le code que tu m'as mis (j'y change le nom de la feuille et la cellule, bien entendu ), j'ai un message d'erreur "Erreur de compilation, attendu : fin instruction" et dans le code, le titre de ma feuille est sélectionné.

Aurais-tu une idée ? Je pencherai pour un problème avec les ""

Selection.Replace What:="*", Replacement:=Sheet"PARAMETRAGE IMPUTATION".Range("B8").value, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False



Sinon petite question, vu que je débute en VBA, mais : pourquoi beaucoup parle du "vilain select à supprimer" ? C'est parce qu'il ne sert à rien ?
 
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : VBA Excel - rechercher remplacer par la valeur d'une cellule

Re
Exact, il manque les (
VB:
Replacement:=Sheet("source").Range("A5").value
En VBA il est rare d'être obligé d'utiliser des Select. Cela ralenti le code pour rien.
Cordialement
 
Dernière édition:

Minh

XLDnaute Nouveau
Re : VBA Excel - rechercher remplacer par la valeur d'une cellule

Mmmh ... malheureusement il y a un nouveau message d'erreur ...

"erreur de compilation : Sub ou Function non défini" et il me surligne Sheet ...

Là j'avoue, que même si je m'y connais que très peu, je trouve ce message d'erreur étrange ... il arrive pas à comprendre le sheet ...

Selection.Replace What:="*", Replacement:=Sheet("PARAMETRAGE IMPUTATION").Range("B8").value, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
 

Discussions similaires

Réponses
1
Affichages
112

Statistiques des forums

Discussions
312 074
Messages
2 085 066
Membres
102 770
dernier inscrit
mathieu.lemaitre