Sub dispatch()
For Each ws In ActiveWorkbook.Sheets 'pour chaque feuille du classeur
If ws.Name <> "planning" And ws.Name <> "totaux" Then
ws.UsedRange.Offset(2).ClearContents 'on efface tout sauf les deux premières lignes d'entete
End If
Next ws
Dim tabdata() As Variant
With Sheets("Planning")
fin = .Range("C" & .Rows.Count).End(xlUp).Row 'dernière ligne du planning
tabdata = .Range("C2:N" & fin).Value 'tout dans un tablo
End With
For i = LBound(tabdata, 1) To UBound(tabdata, 1) 'pour chaque ligne du tablo
If IsDate(tabdata(i, 1)) And tabdata(i, 8) <> "" Then 'pour ignorer les lignes d'entete
With Sheets(tabdata(i, 8)) 'dans la feuille concernée
fin = .Range("A" & .Rows.Count).End(xlUp).Row + 1 'dernière ligne de la feuille
.Range("A" & fin) = tabdata(i, 1)
.Range("B" & fin) = tabdata(i, 2)
.Range("C" & fin) = tabdata(i, 3)
.Range("D" & fin) = tabdata(i, 4)
.Range("E" & fin) = tabdata(i, 9)
.Range("F" & fin) = tabdata(i, 10)
End With
End If
Next i
End Sub