Sub decalage()
Dim i, j 'declaration des variables
i = 13
While Range("A" & i) <> "" ' while fonctionne comme une boucle, si A13 différent de rien
Range("A" & i).Select ' selectionne A13
Rows(i & ":" & i + 2).Insert Shift:=xlDown ' selectionne les lignes A13:A15 et insere des lignes vers le bas
Range("A" & i + 3).Select 'selectionne A16 (prochaine ligne non-vide théoriquement)
j = WorksheetFunction.CountIf(Range(Selection, Selection.End(xlDown)), "<>") ' compte depuis A16 jusqu'à la derniere cellule différente de rien
If j >= 1 Then 'si c'est supérieur ou égale à 1, donc encore des lignes écrites
i = i + 4 ' le i =13 du début passe en 17
Else ' si < 1 ou égale à 0
Exit Sub ' sortir de la macro
End If
Wend 'on reprend au début du 'While avec la nouvelle valeur de i
End Sub