Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Antony38

XLDnaute Nouveau
Bonjour,

Débutant en vba, je cherche une solution à un problème que je n'arrive pas à résoudre.

Dans une boucle :

For i=1 to MaVariable

Mon code de ma boucle

Next


Ma variable est la dernière cellule remplie d'une colonne.

Quelle est l'instruction pour que MaVariable a cette valeur ?

je cherche avec ça :

ActiveSheet.Range(Cellule & ActiveSheet.Rows.Count).End(xlUp)

mais sans résultat.

Avez-vous une solution ?

Merci d'avance
 
Solution
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)
 
Dernière édition:
Bonjour Dranreb

Merci
Je ne connais pas les tableaux dans vba

Selection revient à definir un range( "C1":"C35") ?
et OFFset(1000000) défini par la case où l'instruction commence ?

Je pourrais mettre offset(35) puisque les colonnes n'affichent que des jours d'un mois (Max 31 Jours)

Merci de cette promptitude
 
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.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
330
Réponses
6
Affichages
55
Réponses
10
Affichages
389
Retour