Bonjour,

Faisant mes débuts avec les macro VBA je butte sur le pb suivant:
Le but:
Copier des cellules de la feuille "Source" B2,C2,D2 vers la feuille "Cible" dans B2,C2,D2 à condition que le nom de la première cellule A2 soit égal:

Vu que les noms des cellules Ax ne sont pas forcement dans l'ordre il faut tester chaque ligne par rapport à la Cellule A2 de la feuille Source.
Créer un 1 boucle qui teste toutes les valeurs non vide de Ax dans la feuille "Cible"
Incrémenter A2 de la feuille Source pour tester A3 à toutes les valeurs de Ax de la feuille "Cible"


Si Vrai = copie
Si faux = On incrémente "Cible" de +1 (pour re-tester l'égalité entre A2 de la feuille "Cible" et A3 de la feuille "Source"
Boucle tant que Ax de la feuille "Cible" n'est pas vide.


Voici ma macro qui pose problème:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub Copie sous confition
' *** Positionement sur la feuille "Source"
 Sheets("Source").select
' *** Déclaration des Variables X et Y = Cellules à tester 
Dim x as String
Dim y as String
' *** Tant que Y n'est pas vide les instructions suivante sont executées
*** Do While IsEmpty(y) = False
' *** Si la cellule A2 de la feuille  "Source"   = à la cellule A2 de la feuille  "Cible" 
If Sheets("Source").Cells(x, 1).Value = Sheets("Cible").Cells(x, 1).Value Then
' *** copie de B2,C2,D2, de la feuille  "Source" sur B2,C2,D2, de la feuille  "Cible" 
Then Cells(x, 4).Value = Cells(x, 9).Value
Sheets("Source").Cells(x, 2).Value = Sheets("Cible").Cells(x, 2).Value 
Sheets("Source").Cells(x, 3).Value = Sheets("Cible").Cells(x, 3).Value 
Sheets("Source").Cells(x, 4).Value = Sheets("Cible").Cells(x, 4).Value 
' *** si nom incrementation de Y +1
Else y = y + 1
' *** si nom incrementation de x +1
' *** Boucle retest x = y
Loop
Si y = vide sortie de la boucle 
' *** incrementation de x
x = x+1
End Sub
En espérant avoir été clair dans mes explications.
Merci pour votre aide