Sub itération3()
Dim Ninf, Profondeur, LongueurPieu As Single
If Range("G" & Rows.Count).End(xlUp).Row > 1 Then
Range("G2:H" & Range("G" & Rows.Count).End(xlUp).Row).Clear
End If
Ninf = Range("E2") 'va chercher la valeur de départ en E2
Profondeur = Ninf 'initialise la première valeur de Profondeur
LongueurPieu = Range("F2") 'va chercher la longueur du pieu en F2
step = Range("E5") 'définit le step
Set Zbase = Range("D2:D6") 'récupère le premier Zbase en D2
NbItération = Int((LongueurPieu - Ninf) / step) 'calcule le nombre d'itération pour aller de Ninf à LongueurPieu par pas de step)
Range("G2") = Ninf 'on recopie la valeur inférieure
i = 3
j = 1
While Profondeur < LongueurPieu
While Profondeur + step < Zbase(j) And Profondeur + step < LongueurPieu
Cells(i, 7) = Profondeur + step
Profondeur = Profondeur + step
i = i + 1
Wend
If Profondeur + step < LongueurPieu Then
Cells(i, 7) = Zbase(j)
Cells(i, 7).Interior.ColorIndex = 6
i = i + 1
Profondeur = Zbase(j)
j = j + 1
Else
Cells(i, 7) = LongueurPieu
Cells(i, 7).Interior.ColorIndex = 6
Profondeur = LongueurPieu
End If
Wend
End Sub