Sub Test()
' Déclare les variables comme nombres entiers
Dim I As Integer, J As Integer, K As Integer
' I va servir de compteur pour tester toutes les lignes de la feuille 1
' J va servir à localiser la ligne de la feuille 2 à utiliser
' K va servir à incrémenter les dates
' Pour commencer en dessous de tes entêtes, j'affecte 3 à I et à J
I = 3
J = 3
' Je nettoie la feuille 2 des anciens résultats
' Range("D35536").End(xlUp).Row) permet de connaitre la dernière ligne en
' calculant depuis la dernière ligne (35536) et en remontant à la dernière
' cellule utilisée End(xlUp) le Row en calcule la ligne.
' & va permettre que si le résultat est 10 par exemple, ça donnera Range("A3:D10")
' Le Clear va vider les cellules
Sheets("Feuil2").Range("A3:D" & Range("D35536").End(xlUp).Row).Clear
' Tant que je n'aurai pas mis de End With, les expressions commençant par .
' feront référence à la feuille 1
With Sheets("Feuil1")
' Tant que la cellule de ligne I et de colonne 1 n'est pas vide
While .Cells(I, 1) <> ""
' De K = 1 à la différence de jour entre début et fin (correctif + 1 car il y a
' 1 en plus entre les intervalles et la période
For K = 1 To DateDiff("d", .Cells(I, 3), .Cells(I, 4)) + 1
' Recopie le matricule
Sheets("Feuil2").Cells(J, 1) = .Cells(I, 1)
' Recopie l'événement
Sheets("Feuil2").Cells(J, 2) = .Cells(I, 2)
' Recopie la date de départ plus l'intervalle K
Sheets("Feuil2").Cells(J, 3) = .Cells(I, 3) + K - 1
Sheets("Feuil2").Cells(J, 4) = .Cells(I, 3) + K - 1
' Incrémente la ligne de la feuille 2
J = J + 1
' Incrémente la date
Next K
' Incrémente la ligne de la feuille 1
I = I + 1
' Boucle sur le While
Wend
' Fin de la référence à feuille 1
End With
End Sub