Sub Dispatch3()
Dim i As Integer, j As Integer, k As Integer, l As Integer, derligne As Range 'Déclaration des variables
Set derligne = Feuil1.Range("B" & Rows.Count).End(3).Rows
If MsgBox("Voulez vous lancer la macro ?", vbYesNo) = vbNo Then Exit Sub 'Si la réponse est non, on sort de la procédure
For i = 2 To Sheets.Count 'Pour i= 2 jusqu'au nombre de feuilles du classeur
Sheets(i).[A9].CurrentRegion.Clear 'Pour chaque feuille, on supprime tout ce qu'il y a autour de la cellule A9
For l = 2 To derligne.Row
If Cells(l, 2) Like Sheets(i).Name Then 'si la cellule (i,2), donc B2 est égale au nom de la feuille, alors
For j = l To Range("B" & Rows.Count).End(3).Row 'pour j=1 jusqu'à la dernière ligne vide en remontant du bas
If Cells(j, 2) Like Sheets(i).Name Then 'si la cellule (j,2), donc A2 est égale au nom de la feuille, alors
If Sheets(i).Range("A9") = "" Then 'si sur la feuille concernée la cellule A9 est vide alors
Sheets(i).Range("A9") = Cells(j, 1) 'on écrit les données de la 1ère feuille en A9
For k = 1 To 26 'pour k de 1 à 26
Sheets(i).Range("A" & Rows.Count).End(3).Rows(1).Offset(, k) = Cells(j, k + 1) 'on écrit la suite sur les 26 colonnes
Next
Else 'sinon
Sheets(i).Range("A" & Rows.Count).End(3).Rows(2) = Cells(j, 1) 'on écrit à partir de la dernière cellule vide trouvée
For k = 1 To 26
Sheets(i).Range("A" & Rows.Count).End(3).Rows(1).Offset(, k) = Cells(j, k + 1)
Next
End If
End If
Exit For
Next
End If
Next l
Next 'et on recommence pour la ligne suivante
MsgBox "Opération terminée"
End Sub