Option Explicit
Sub test()
Dim i As Long, j As Long, k As Long, X As Long
Application.ScreenUpdating = False
Range("L4:AB7") = ""
For i = 4 To 7 ' ligne de 4 à 7
X = 0
For j = 12 To 28 ' colonne de 12 à 28
If Cells(i, 9) <> "" And Cells(i, 10) = Cells(3, j) Then 'si la cellule ligne et colonne 9 différent de vide
' la cellule ligne et colonne 10 et égale à la cellule ligne 3 et colonne alors
For k = 1 To Cells(i, 9) ' boucle de 1 à la valeur de la cellule ligne - colonne 9
Cells(i, j + k - 1) = Cells(i, 4) ' la cellule ligne - colonne j+k-1 = cellule ligne - colonne 4
X = 1
Next k
If X = 1 Then Exit For
End If
Next j
Next i
Application.ScreenUpdating = True
End Sub