Option Explicit
Sub essai()
Dim i As Long
Dim j As Long
Dim k As Integer
Dim l As Integer
Dim p As Integer
Application.ScreenUpdating = False ' Ecran figé
With Sheets("agenda")
.Range("B3:P20").ClearContents ' suppression de la saisie des cellules
.Range("B22:P39").ClearContents
.Range("B41:P58").ClearContents
.Range("B60:P77").ClearContents
.Range("B79:P96").ClearContents
.Range("B98:P115").ClearContents
.Range("B117:P134").ClearContents
.Range("B136:P153").ClearContents
.Range("B155:P172").ClearContents
.Range("B174:P191").ClearContents
.Range("B193:P210").ClearContents
.Range("B212:P229").ClearContents
.Range("B231:P248").ClearContents
.Range("B250:P267").ClearContents
.Range("B269:P286").ClearContents
.Range("B288:P305").ClearContents
End With
With Sheets("app")
For i = 2 To 65536 ' ligne de 2 à 65536
If .Cells(i, 1) = "" Then Exit Sub ' si la cellule colonne 1 de la feuille app est vide alors sortie macro
For j = 2 To 1008 Step 19 ' boucle de 2 à 1008 par pas de 19
If .Cells(i, 3) = Sheets("agenda").Cells(j, 1) Then ' si la colonne C est égale à la colonne 1 de la feuille agenda alors
For k = 2 To 14 Step 3 ' boucle de 2 à 14
If .Cells(i, 1) = Sheets("agenda").Cells(2, k) Then ' si la colonne 1 feuille app est égale à ligne 2 et colonne de la feuille agenda alors
For l = j + 1 To j + 18 ' boucle de 3 à 20
If Sheets("agenda").Cells(l, k) = "" Then ' si la cellule du lundi ou mardi etc .... est vide alors
Sheets("agenda").Cells(l, k) = .Cells(i, 2) ' la cellule comprend le client de la feuille app
Exit For ' sortie for
End If ' fin si
Next l
End If
Next k
Exit For
End If
Next j
Next i
End With
Application.ScreenUpdating = True
End Sub