Sub macro1()
Dim ni As Byte 'déclare la variable ni (Numéro Index)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim tbl As Variant 'déclare le tableau tbl
Dim i As Integer 'déclare la variable i (Incrément)
ni = ActiveSheet.Index 'définit le numéro d'index ni
dl = Sheets(ni).Cells(Application.Rows.Count, 2).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne 2 (=B)
tbl = Sheets(ni).Range("D4:H" & dl).Value 'définit le tableau tbl
For i = 1 To UBound(tbl, 1) 'boucle sur toutes les lignes du tableau tbl
'condition : si la cellule en H est vide et si l'une des cellules en D ou E n'est pas vide
If tbl(i, 5) = "" And tbl(i, 2) <> "" Or tbl(i, 2) <> "" Then
'copie la plage des cellule en ligne i+3 colonnes C à f et la colle dans l'onglet suivant
Sheets(ni).Cells(i + 3, 3).Resize(1, 4).Copy Sheets(ni + 1).Cells(i + 3, 3)
End If 'fin de la condition
Next i 'prochaine ligne du tableau
End Sub