Question sur une macro avec la fonction "Remplacer"

gexjere

XLDnaute Nouveau
Bonjour à tous,

Je suis tout nouveau sur le forum et en VBA aussi, Je me présente, je suis Jérémy et je suis étudiant.

Dans le cadre d'un projet que je dois réaliser je souhaite utiliser fonction remplacer. En clair, j'ai une feuille1 qui contient tous les clients avec des prix différents (par exemple en fonction des quantités). Dans ma feuille2 les prix sont affichés en fonction des références produit et du client. Afin de les retrouver j'utilise =+'feuille2 '!A1 incrémenter sur toutes les lignes
=+'feuille2 '!A1
=+'feuille2 '!A2
=+'feuille2 '!A3
=+'feuille2 '!A4
=+'feuille2 '!A5
=+'feuille2 '!A6
=+'feuille2 '!A7
=+'feuille2 '!A8
=+'feuille2 '!A9, etc.

Avec le ClientA (dans la colonne A)

Quand je veux changer de client je vais dans la fonction remplacer et je lui demande de remplacer "Feuille2 '!A" par "Feuille2 '!B" ce qui marche parfaitement.
Je veux maintenant automatiser cette étape, ce qui donne dans mon code :

Dim valeur1 As String
Dim valeur2 As String

valeur1 = Range("Q10").Value (dans la cellule Q10 se trouve la valeur "Feuille2 '!A")
valeur2 = Range("G3").Value (dans la cellule G3 se trouve la valeur "Feuille2 '!B")
Cells.Replace What:="valeur1", Replacement:= _
"valeur2", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase _
:=False, SearchFormat:=False, ReplaceFormat:=False

valeur1 et valeur2 prennent bien la bonne valeur cependant quand quand je lance la macro rien ne se passe sur la fonction remplacer. A mon avis car What:="valeur1" ne pointe pas sur la valeur de la variable mais je ne suis pas sur.

Je ne sais plus vraiment comment faire maintenant j'ai essayé tout ce que je sais faire, c'est à dire pas grand chose pour le moment :)

Merci par avance de votre aide

Jérémy
 

Dranreb

XLDnaute Barbatruc
Re : Question sur une macro avec la fonction "Remplacer"

Bonjour
Les guillemets servent à spécifier des constantes caractères: là il essaye de remplacer "valeur1" par "Valeur2" au lieu de remplacer la valeur de valeur1 par celle de valeur2.
Cordialement
 

Gorfael

XLDnaute Barbatruc
Re : Question sur une macro avec la fonction "Remplacer"

Salut gexjere et le forum
Je suis tout nouveau sur le forum et en VBA aussi, Je me présente, je suis Jérémy et je suis étudiant.
À chacun sa croix :p
"=+'feuille2 '!A1" => "='feuille2 '!A1"
valeur1 et valeur2 prennent bien la bonne valeur cependant quand quand je lance la macro rien ne se passe sur la fonction remplacer. A mon avis car What:="valeur1" ne pointe pas sur la valeur de la variable mais je ne suis pas sur.
Tu fais une erreur de "débutant" : il faut différencier ce que tu vois (affichage) de ce que contient ta cellule

Quand tu demandes à Excel de remplacer (replace) => tu lui demandes obligatoirement d'agir sur les caractères de la formule

Dim valeur1 As String
Dim valeur2 As String

valeur1 = Range("Q10") (dans la cellule Q10 se trouve la valeur "Feuille2 '!A") : Là, dans ta varible on a l'affichage (.value) de la cellule :
Si Q10 : =Feuille2 '!A10 => "Client AA" =>

valeur2 = Range("G3") (dans la cellule G3 se trouve la valeur "Feuille2 '!B")
Cells.Replace What:="Client AA", Replacement:= _
valeur2, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase _
:=False, SearchFormat:=False, ReplaceFormat:=False
Remplacer dans le contenu (la formule) des cellules "Client AA" par la valeur affichée en G3

Donc, d'après ce que j'ai compris, pas étonnant que ça ne fonctionne pas.
On peut faire deux raisonnement :
- soit on remplace dans la formule les caractères voulus
avec
Valeur1 = left(Range("Q10").formula,13)
Valeur2 = left(Range("G3").formula,13)
(à tester sur un avant de tout faire, le nombre de caractères doit être précis)

- soit on remplace la valeur (l'affichage) avec un find pour trouver la cellule (soit dans les valeurs, soit dans les formules) et on remplace la valeur de la cellule par la valeur de G3 => les cellules auront donc "Clent AA".

Petit rappel : tu connais ton fichier, nous non et pour le code c'est l'inverse => plus tu es précis (comme si on ne savais rien du problème) plus on peut être précis dans nos réponses, ce qui permet de faire la liaison entre la question et la réponse.
A+
 
Dernière édition:

gexjere

XLDnaute Nouveau
Re : Question sur une macro avec la fonction "Remplacer"

Bonjour à vous deux !

Je vous remercie ça marche parfaitement maintenant, fiou pas facile de comprendre au début le VBA. Dire que ca fessait une heure que j'étais sur le problème -_-
 

Discussions similaires

Statistiques des forums

Discussions
312 338
Messages
2 087 397
Membres
103 536
dernier inscrit
komivi