Option Explicit
Sub travdem()
Dim Cellule1 As Range
Dim Cellule2 As Range
Dim plage2 As Range
Dim Nomfeuille1 As String
Dim Nomfeuille2 As String
Dim Col1 As String, Col2 As String
Dim I As Long
'parametre
' pour boucler sur la colonne 1
Nomfeuille1 = "Suivi Commande"
Nomfeuille2 = "Commande"
Col1 = "H"
Col2 = "J"
With Sheets(Nomfeuille2)
Set plage2 = .Range(Col2 & "2:" & Col2 & .Range(Col2 & .Rows.Count).End(xlUp).Row)
End With
With Sheets(Nomfeuille1)
For Each Cellule1 In .Range(Col1 & "2:" & Col1 & .Range(Col1 & .Rows.Count).End(xlUp).Row)
Set Cellule2 = plage2.Find(Cellule1, LookIn:=xlValues)
If Not Cellule2 Is Nothing Then
'Si c’est le cas alors il ne faut rien faire.
Else
'Si un des numéros de commande de la feuille « Suivi Commande » n’est plus dans la feuille « Commande » alors il faut supprimer la ligne entière de la commande en question dans la feuille « Suivi Commande ».
Cellule1 = ""
End If
Next Cellule1
For I = .Range("A" & .Rows.Count).End(xlUp).Row To 2 Step -1
If .Range(Col1 & I) = "" Then .Rows(I).Delete Shift:=xlUp
Next I
End With
' on modifie la recherche
With Sheets(Nomfeuille1)
Set plage2 = .Range(Col1 & "2:" & Col1 & .Range(Col1 & .Rows.Count).End(xlUp).Row)
End With
With Sheets(Nomfeuille2)
For Each Cellule1 In .Range(Col2 & "2:" & Col2 & .Range(Col2 & .Rows.Count).End(xlUp).Row)
Set Cellule2 = plage2.Find(Cellule1, LookIn:=xlValues)
If Not Cellule2 Is Nothing Then
Else
I = Sheets(Nomfeuille1).Range("h" & Sheets(Nomfeuille1).Rows.Count).End(xlUp).Row + 1
Sheets(Nomfeuille1).Range("a" & I) = .Range("b" & Cellule1.Row)
Sheets(Nomfeuille1).Range("b" & I) = .Range("c" & Cellule1.Row)
Sheets(Nomfeuille1).Range("c" & I) = .Range("d" & Cellule1.Row)
Sheets(Nomfeuille1).Range("d" & I) = .Range("D" & Cellule1.Row)
Sheets(Nomfeuille1).Range("e" & I) = .Range("E" & Cellule1.Row)
Sheets(Nomfeuille1).Range("f" & I) = .Range("g" & Cellule1.Row)
Sheets(Nomfeuille1).Range("g" & I) = .Range("i" & Cellule1.Row)
Sheets(Nomfeuille1).Range("h" & I) = .Range("j" & Cellule1.Row)
Sheets(Nomfeuille1).Range("k" & I) = .Range("H" & Cellule1.Row)
Sheets(Nomfeuille1).Range("r" & I) = .Range("R" & Cellule1.Row)
End If
Next Cellule1
End With
End Sub