pierreauber
XLDnaute Nouveau
Bonjour,
je souhaite réaliser une macro de comparaison entre deux feuilles(sheet1 et sheet 2) de deux fichiers différents(worksheet1 et worksheet2) et qui irait copier les données trouvées dans sheet1 non présentes dans sheet 2, dans une troisième feuille(sheet 3) se trouvant dans le classeur worksheet2.
Voila ce que j'ai essayé, mais cette macro me copie les données de sheet1 en intégralité dans sheet 3.
Pour info, les deux fichiers sont déjà ouverts avant le démarage de la macro.
Sub comparaison ()
Dim x as string
dim y as string
dim j as integer
dim i as integer
x="workbook1.xls"
y="workbook2.xls"
dim test1 as worksheet, test2 as worksheet
dim c as range
set test1=workbooks(x).sheets("sheet1")
set test2=workbooks(y).sheets("sheet2")
dernierelignesheet1 = test1.Range("L65536").End(xlUp).Row
dernierelignesheet2 = test2.Range("L65536").End(xlUp).Row
For i = 1 To dernierelignesheet1
test1.Activate
Set c = Range("A1 : A" & dernierelignetest1).Cells.Find(test2.Range("A" & i), LookIn:=xlValues)
If Not c Is Nothing Then test1.Range("A" & i).EntireRow.Copy
Workbooks(y).Worksheets("sheet3").Activate
j = 1
While Cells(j, 1) <> ""
j = j + 1
Wend
Cells(j, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Next i
Set test1 = Nothing
Set test2 = Nothing
End If
End Sub
Merci beaucoup si vous pouvez trouver la solution, je galère vraiment avec cette macro
je souhaite réaliser une macro de comparaison entre deux feuilles(sheet1 et sheet 2) de deux fichiers différents(worksheet1 et worksheet2) et qui irait copier les données trouvées dans sheet1 non présentes dans sheet 2, dans une troisième feuille(sheet 3) se trouvant dans le classeur worksheet2.
Voila ce que j'ai essayé, mais cette macro me copie les données de sheet1 en intégralité dans sheet 3.
Pour info, les deux fichiers sont déjà ouverts avant le démarage de la macro.
Sub comparaison ()
Dim x as string
dim y as string
dim j as integer
dim i as integer
x="workbook1.xls"
y="workbook2.xls"
dim test1 as worksheet, test2 as worksheet
dim c as range
set test1=workbooks(x).sheets("sheet1")
set test2=workbooks(y).sheets("sheet2")
dernierelignesheet1 = test1.Range("L65536").End(xlUp).Row
dernierelignesheet2 = test2.Range("L65536").End(xlUp).Row
For i = 1 To dernierelignesheet1
test1.Activate
Set c = Range("A1 : A" & dernierelignetest1).Cells.Find(test2.Range("A" & i), LookIn:=xlValues)
If Not c Is Nothing Then test1.Range("A" & i).EntireRow.Copy
Workbooks(y).Worksheets("sheet3").Activate
j = 1
While Cells(j, 1) <> ""
j = j + 1
Wend
Cells(j, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Next i
Set test1 = Nothing
Set test2 = Nothing
End If
End Sub
Merci beaucoup si vous pouvez trouver la solution, je galère vraiment avec cette macro