Sub Macro1()
Dim O As Object 'déclare la variable O (Objet)
Dim DL As Long 'déclare la variable DL (Dernière Ligne)
Dim T As Variant 'déclare la variable T (Taux)
Dim I As Long 'déclare la variable I (Incrément)
Dim N As Long 'déclare la variable N (Nombre)
Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
Set O = Sheets("Feuil1") 'définit la'onglet O
DL = O.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 1 (=A) de l'onglet O
T = Application.InputBox("Choississez le Taux", "TAUX", Type:=2) 'définit le taux T
If T = False Or T = "" Then Exit Sub 'si bouton "Annuler" ou si boîte d'entrée non renseignée, sort de la procédure
N = 1 'initialise le nombre N
For I = 2 To DL Step CInt(T) 'boucle des lihne 2 à DL par pas de T
O.Cells(I, 3).Resize(CInt(T), 1).Value = N 'donne la valeur N à la première cellule redimentionnée (T ligne, 1 colonne)
'tri (je ne commente pas car j'ai utiliser l'enregistreur de macro et je ne comprends rien à cette nouvelle méthode de tri...)
O.Sort.SortFields.Clear
O.Sort.SortFields.Add Key:=O.Range(O.Cells(I, 2), O.Cells(I + (CInt(T) - 1), 2)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With O.Sort
.SetRange O.Range(O.Cells(I, 1), O.Cells(I + (CInt(T) - 1), 7))
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
N = N + 1 'incrémente N
Next I 'prochaine ligne de la boucle
O.Cells(DL + 1, 3).Resize(T, 1).Clear 'efface les éventuelles données en fin de colonne 3 (=C)
Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
End Sub