Sub Macro1()
Dim f1 As Workbook 'déclare la variable f1 (Ficher 1)
Dim f2 As Workbook 'déclare la variable f2 (Ficher 3)
Dim cc As Workbook 'déclare la variable cc (Classeur Cible)
Dim o1 As Object 'déclare la variable o1 (Onglet du ficher 1)
Dim o2 As Object 'déclare la variable o2 (Onglet du ficher 2)
Dim oc As Object 'déclare la variable oc (Onglet Cible)
Dim pl1 As Range 'déclare la variable pl1 (PLage de l'onglet 1)
Dim pl2 As Range 'déclare la variable pl2 (PLage de l'onglet 2)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim dest As Range 'déclare la variable dest (cellule de DESTination)
Set f1 = Workbooks("Fichier1.xlsx") 'définit le classeur f1
Set f2 = Workbooks("Fichier2.xlsx") 'définit le classeur f2
Set cc = ThisWorkbook 'définit le classeur cc
Set o1 = f1.Sheets("Feuil1") 'définit l'onglet o1
Set o2 = f2.Sheets("Feuil1") 'définit l'onglet o2
Set oc = cc.Sheets("Feuil1") 'définit l'onglet oc
Set pl1 = o1.Range("C4:C" & o1.Cells(Application.Rows.Count, 3).End(xlUp).Row) 'définit la plage pl1
Set pl2 = o2.Range("C4:C" & o1.Cells(Application.Rows.Count, 3).End(xlUp).Row) 'définit la plage pl2
For Each cel In pl1 'boucle 1 : sur toutes les cellules de la plage pl1
If o2.Columns(3).Find(cel.Value, , xlValues, xlWhole) Is Nothing Then 'condition 1 : si aucune occurrence de la cellule n'est trouvée dans la colonne C de l'onglet o2
Set dest = oc.Cells(Application.Rows.Count, 3).End(xlUp).Offset(1, 0) 'définit la cellle de destination dans l'onglet cible
dest.Value = cel.Value 'récupère la valeur de la cellule dans dest
End If 'fin de la condition 1
Next cel 'prochaine cellule de la boucle 1
For Each cel In pl2 'boucle 2 : sur toutes les cellules de la plage pl2
If o1.Columns(3).Find(cel.Value, , xlValues, xlWhole) Is Nothing Then 'condition 2 : si aucune occurrence de la cellule n'est trouvée dans la colonne C de l'onglet o1
Set dest = oc.Cells(Application.Rows.Count, 3).End(xlUp).Offset(1, 0) 'définit la cellle de destination dans l'onglet cible
dest.Value = cel.Value 'récupère la valeur de la cellule dans dest
End If 'fin de la condition 1
Next cel 'prochaine cellule de la boucle 2
End Sub