Sub Formulaire()
Dim CelS As Range, CelC As Range, d As Byte, sh As Object
'CelS = cellule source dans Feuil1 colonne C
'CelC = cellule cible (1ère cellule vide dans la feuille sh, colonne C)
'd = décalage pour cocher la bonne cellule de véhicule dans la feuille sh (décalage à droit par rapport à la colonne c)
'sh = feuille correspondant à l'agence
Application.ScreenUpdating = False 'suspend le rafraîchissement d'écran qui ralentit le déroulement de la macro
'La boucle suivante cherche la feuille qui contient tout ou partie du nom contenu en colonne C
For Each CelS In Feuil1.Range("C8:C" & Rows.Count).SpecialCells(xlCellTypeConstants)
For Each sh In Sheets
If InStr(CelS, sh.Name) > 0 Then Exit For 'si le nom est trouvé, fin de la boucle et sh désigne la feuille de l'agence
Next
With sh
Set CelC = .Cells(Rows.Count, 3).End(xlUp).Offset(1, 0) 'cherche la 1ère cellule vide en colonne C de la feuille sh
'les lignes suivantes recopient les cellules source dans les cellules cibles en se référant au décalage par rapport à CelS et CelC
CelC = CelS.Offset(0, 3) 'Nom
CelC.Offset(0, 1) = CelS.Offset(0, 4) 'Prénom
CelC.Offset(0, 2) = CelS.Offset(0, 5) 'Téléphone
CelC.Offset(0, 3) = CelS.Offset(0, 2) 'Pt RDV
Select Case CelS.Offset(0, 6).Value
Case Is = sh.Cells(20, 7) 'Camion
d = 4
Case Is = sh.Cells(20, 8) 'Vélo
d = 5
Case Is = sh.Cells(20, 9) 'Voiture
d = 6
End Select
CelC.Offset(0, d) = "X"
CelC.Offset(0, 7) = CelS.Offset(0, 8)
End With
Next
Application.ScreenUpdating = True 'réactive le rafraîchissement d'écran
End Sub