Bonjour,
Je ne comprends pas trop le besoin d’une macro pour cela. Ci-après une proposition.
Sub CopieSansDoublons()
Dim myRng As Range
Set myRng = ThisWorkbook.Worksheets(1).Range("A3")
Dim col As Variant
For Each col In Array("A", "D", "G")
With ThisWorkbook.Worksheets(1).Range(col & 3)
Set myRng = Application.Union(myRng, Range(.Cells, .End(xlDown)))
End With
Next col
Dim noDuplicates As Object
Set noDuplicates = CreateObject("Scripting.Dictionary")
Dim c As Variant
For Each c In myRng.Cells
noDuplicates(c.Value2) = c.Value2
Next c
ThisWorkbook.Worksheets(2).Range("A2:A" & noDuplicates.Count + 1) = Application.Transpose(noDuplicates.Keys())
End Sub