Vba ne copie pas à l'endroit voulu

Résolu
Frenk -  
 Frenk -
Bonjour,

Je dois faire une macro qui cherche un certain mot dans la colonne 10. Si ce mot est trouvé, la macro doit copier le contenu des colonnes 1 à 9 vers une autre feuille à partir de la cellule (1,1). Le problème est qu'il copie bien en colonne 1, mais à la ligne où se trouve le mot en question. Je n'arrive pas à voir ce qui ne va pas dans mon code:

Dim Wbk1 As Workbook, Wbk2 As Workbook

Set Wbk2 = Workbooks.Open(Filename:="C:\xxx.xls")
Set Wbk1 = Workbooks.Open(Filename:="T:\bzerzer.xls")

colonne = 10
critere_de_copie = "PARIS"
i = 1
e = 1

Do While (Cells(i, colonne) <> "")
If Wbk1.Sheets("villes").Cells(i, colonne) = critere_de_copie Then

Wbk1.Sheets("villes").Range(Cells(i, 1), Cells(i, 17)).Copy Wbk2.Sheets("blabla").Cells(e, 7)
End If
i = i + 1
e = e + 1
Loop

End Sub

Merci d'avance
A voir également:

2 réponses

eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonjour,

Tu invrémentes tes 2 boucles en même temps, n'incrémente e que s'il y a copie et i à l'extérieur du if. Essaie :

Dim Wbk1 As Workbook, Wbk2 As Workbook

Set Wbk2 = Workbooks.Open(Filename:="C:\xxx.xls")
Set Wbk1 = Workbooks.Open(Filename:="T:\bzerzer.xls")

colonne = 10
critere_de_copie = "PARIS"
i = 1
e = 1

Do While (Cells(i, colonne) <> "")
If Wbk1.Sheets("villes").Cells(i, colonne) = critere_de_copie Then
Wbk1.Sheets("villes").Range(Cells(i, 1), Cells(i, 17)).Copy Wbk2.Sheets("blabla").Cells(e, 7)
e = e + 1
End If
i = i + 1
Loop

End Sub

eric
1
Frenk
 
Ca marche impec!

Merci bcp :)
0