Sub Dans1PasDans2()
Dim rgNA As Range, xCell As Range, xDest As Range
Application.ScreenUpdating = False
'on efface les anciens résultats de Sheet3
Sheets("Sheet3").Range("A2:E" & Rows.Count).ClearContents
With Sheets("Feuille1")
'inserer une colonne avant la colonne F
.Columns("f").Insert Shift:=xlToRight
'Formule retournant #N/A si la ligne de Feuille1 n'est pas dans Feuill2, sinon retourne 1
'équivalent à la formule en 'Français':
'=SI(NB.SI.ENS(Feuille2!A:A;A2;Feuille2!B:B;B2;Feuille2!C:C;C2;Feuille2!D:D;D2;Feuille2!E:E;E2)=0;NA();1)
.Range("F2").Formula = _
"=IF(COUNTIFS(Feuille2!A:A,A2,Feuille2!B:B,B2,Feuille2!C:C,C2,Feuille2!D:D,D2,Feuille2!E:E,E2)=0,NA(),1)"
'copie de la formule sur la hauteur du tableau
.Range("F2").AutoFill Destination:=.Range(.Range("F2"), .Cells(.Rows.Count, "a").End(xlUp).Offset(0, 5))
'Sélectionner les cellules de la colonne F ayant une erreur (=#N/A)
On Error Resume Next ' si aucune cellule ne contient #N/A alors excel lève une erreur
' on va "sauter" cette erreur
'On selectionne les cellules dela colonne F comportant une erreur dont #N/A
Set rgNA = .Columns("f").SpecialCells(xlCellTypeFormulas, 16)
' Si il y a des cellules comprenant #N/A, on les copie
If Not rgNA Is Nothing Then
On Error GoTo 0 ' On rétabli la gestion normale des erreurs
'On défini la cellule de départ d'écriture dans Sheet3
Set xDest = Sheets("Sheet3").Range("A2")
'Boucle sur les cellules de rgNA
For Each xCell In rgNA.Cells
'copie de la ligne de Feuille1 vers Sheet3
.Range(.Cells(xCell.Row, "a"), .Cells(xCell.Row, "e")).Copy Destination:=xDest
'on prépare la prochaine cellule d'écriture de Sheet3 en descendant d'une ligne
Set xDest = xDest.Offset(1, 0)
Next xCell
End If
'On supprime la colonne qu'on avait insérée
.Columns("f").Delete
End With
Application.ScreenUpdating = False
End Sub