Sub Transfert()
[COLOR="Red"]Dim plage[/COLOR] As Range, cel As Range, ref As Range
Application.ScreenUpdating = False 'l'écran est figé
ActiveSheet.AutoFilterMode = False ' retire le filtre automatique au cas où il serait en place
Sheets("efg").Range("6:65536").Clear ' efface tout à partir de la ligne 6 feuille efg
[COLOR="Red"]Set plage[/COLOR] = Range("A5:A" & Range("A65536").End(xlUp).Row) ' feuille active : plage étudiée
For Each cel In [COLOR="Red"]plage[/COLOR]
If Application.CountIf(Sheets("efg").Range("A5:A65536"), cel) = 0 Then 's'il s'agit d'une nouvelle valeur en feuille efg (CountIf est l'équivalent de NB.SI)
Set ref = Sheets("efg").Range("A65536").End(xlUp)(2) ' ref = cellule sous la dernière cellule colonne A feuille efg
Range("A4:C65536").AutoFilter Field:=1, Criteria1:=cel ' feuille active : mise en place du filtre et filtrage suivant valeur colonne A
[COLOR="Red"]plage[/COLOR].SpecialCells(xlVisible).Copy ref 'copie de la zone filtrée colonne A vers ref
[COLOR="Red"]plage.Offset(0, 2).[/COLOR]SpecialCells(xlVisible).Copy ref.Offset(0, 1) 'copie de la zone filtrée colonne C
Range("A4:C65536").AutoFilter ' le filtre est retiré
End If
Next
Application.ScreenUpdating = True
End Sub