Sub Macro1()
Dim o1 As Object 'déclare la variable o1 (Onglet 1)
Dim o2 As Object 'déclare la variable o1 (Onglet 2)
Dim o3 As Object 'déclare la variable o1 (Onglet 3)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim r As Range 'déclare la variable r (Recherche)
Dim dest As Range 'déclare la variable dest (Cellule de DESTination)
Set o1 = Sheets("0.Récap") 'définit l'onglet o1
Set o2 = Sheets("0.Prix Unitaires") 'définit l'onglet o2
Set o3 = Sheets("0.Prix Unitaires") 'définit l'onglet o3
'supprime les anciennes données
If o3.Range("E8").Value <> "" Then o3.Range("E8").CurrentRegion.Offset(1, 0).Resize(o3.Range("E8").CurrentRegion.Rows.Count - 1).Clear
dl = o1.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne dl de la colonne A de l'onglet 01
Set pl = o1.Range("E8:G36" & dl) 'définit la plage pl
For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
Set r = o2.Columns(1).Find(cel.Value, , xlValues, xlWhole) 'définit la recherche r (recherche cel dans la colonne A de l'onglet o2)
If r Is Nothing Then 'condition si il n'existe aucune occurrence
Set dest = o3.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0) 'définit la celluel de destination
'o1.Rows(cel.Row).Copy dest 'A remplacer par
o1.Rows(cel.Row).Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'copy la ligne dans dest
End If 'fin de la condition
Next cel 'prochaine cellule de la boucle
o3.Activate 'active l'onglet "Sheet3"
End Sub