Bonjour
Chargez l'ensemble de la plage à considérer dans un tableau TDon(), comme ça ce sera UBound(TDon, 1)
VB:
Dim TDon(), L As Long, CelDéb as Range, Valeur
Set CelDéb = Selection ' (exemple)
TDon = CelDéb.Resize(CelDéb.Offset(1000000).End(xlUp).Row - CelDéb.Row + 1).Value
For L = 1 To UBound(TDon, 1)
Valeur = TDon(L, 1)
Bonjour
Chargez l'ensemble de la plage à considérer dans un tableau TDon(), comme ça ce sera UBound(TDon, 1)
VB:
Dim TDon(), L As Long, CelDéb as Range, Valeur
Set CelDéb = Selection ' (exemple)
TDon = CelDéb.Resize(CelDéb.Offset(1000000).End(xlUp).Row - CelDéb.Row + 1).Value
For L = 1 To UBound(TDon, 1)
Valeur = TDon(L, 1)
Oui et non. Selection est souvent un Range représentant la plage sélectionnée avant exécution de la macro. La méthode Offset d'un Range renvoie un autre Range représentant la plage représentée par celui concerné, décalée d'un certain nombre de lignes et éventuellement de colonnes spécifiées.
La méthode Resize d'un Range renvoie un autre Range représentant la plage représentée par celui concerné, redimensionnée d'un certain nombre de lignes et éventuellement de colonnes spécifiées.
1000000 c'est juste un peu moins que ActiveSheet.Rows.Count.