Sub dispatch()
Dim TabSource1() As Variant
Dim TabSource2() As Variant
TabSource1 = Range("Tableau1").Value 'on met les tableaux structurés dans des tablo vba
TabSource2 = Range("Tableau2").Value
With Sheets("Feuil2")
.Range("A15:G27").ClearContents
fin = .Range("A" & .Rows.Count).End(xlUp).Row
If fin > 35 Then
.Range("A36:G" & fin).ClearContents
End If
For i = LBound(TabSource1, 1) To UBound(TabSource1, 1) 'on parcourt le tableau1
If TabSource1(i, 4) <> "" Then 'la ligne doit etre copiée
ligne = .Range("A35").End(xlUp).Row + 1
If ligne = 28 Then
ligne = .Range("A" & Rows.Count).End(xlUp).Row + 1
End If
.Range("A" & ligne) = TabSource1(i, 1)
.Range("B" & ligne) = TabSource1(i, 2)
.Range("F" & ligne) = TabSource1(i, 3)
.Range("G" & ligne) = TabSource1(i, 4)
End If
Next i
For i = LBound(TabSource2, 1) To UBound(TabSource2, 1) 'on parcourt le tableau1
If TabSource2(i, 4) <> "" Then 'la ligne doit etre copiée
ligne = .Range("A35").End(xlUp).Row + 1
If ligne = 28 Then
ligne = .Range("A" & Rows.Count).End(xlUp).Row + 1
End If
.Range("A" & ligne) = TabSource2(i, 1)
.Range("B" & ligne) = TabSource2(i, 2)
.Range("F" & ligne) = TabSource2(i, 3)
.Range("G" & ligne) = TabSource2(i, 4)
End If
Next i
If .Range("A36") <> "" Then
.Range("C84") = "FIN"
Else
.Range("C31") = "FIN"
End If
End With
End Sub