Rechercher : dans
Par :

Vba ne copie pas à l'endroit voulu

Dernière réponse le 6 jui 2009 à 12:16:34 Frenk, le 6 jui 2009 à 11:35:44 
 Signaler ce message aux modérateurs

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

Configuration: Windows 2003 Internet Explorer 7.0

1

eriiic, le 6 jui 2009 à 12:09:04
  • +1

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

Répondre à eriiic

2

 Frenk, le 6 jui 2009 à 12:16:34

Ca marche impec!

Merci bcp :)

Répondre à Frenk