Vba ne copie pas à l'endroit voulu
Résolu
Frenk
-
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
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:
- Vba ne copie pas à l'endroit voulu
- Copie cachée - Guide
- Remettre l'ecran a l'endroit - Guide
- Super copie - Télécharger - Gestion de fichiers
- Copie écran samsung - Guide
- Copie disque dur - Guide
2 réponses
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
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