Je ne comprends pas une ligne vba

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 !

lerogertroutman

XLDnaute Junior
Set Cel = Cel(Cel.Count) <-- késako ?

Bonjour,

J'ai trouvé ce petit bout de code qui permet, dans un tableau, de sélectionner la première ligne vide sous ce tableau :
Code:
Dim Cel As Range
      With ActiveSheet
            Set Cel = .Range("B7").CurrentRegion
            [COLOR="SeaGreen"]'donner à Cel la valeur de la plage dont l'origine est B7[/COLOR]
            Set Cel = Cel(Cel.Count)
            [COLOR="SeaGreen"]'?[/COLOR]
            .Range(.Cells(Cel.Row + 1, 2), Cel.Offset(1, 0)).Select
            [COLOR="seagreen"]'le 2, c'est parce que le tableau commence en colonne B[/COLOR]      
            End With

J'apprends en essayant de déchiffrer, mais je ne comprends pas le fonctionnement de cette ligne :
Code:
Set Cel = Cel(Cel.Count)
J'ai compris avec un msgbox qu'elle donne à la variable Cel la valeur de la dernière cellule de mon tableau, mais je ne comprends pas comment.

Quelqu'un peut-il m'éclairer en me traduisant ce code ?
Merci !

Le Roger
 
Dernière édition:
Re : Je ne comprends pas une ligne vba

Bonjour Leroger, bonjour à tous,

La variable "Cel" est une plage qui comprend toutes les cellules utilisées délimitées par les lignes et colonnes vides.

cel.count donne le nombre de cellules de la plage (par ex 65).

Cel(cel.count) équivaut à cel(65) donc l'item 65 de la plage cel, donc la dernière cellule.

Cel=cel(cel.count) redéfinit la plage cel comme étant la dernère cellule de la plage.

A partir de là toutes les références (Row, value, column, address, offset...) seront propres à la dernière cellule.

J'espère que c'est à peu près clair 😉

@+

Gael
 
Re : Je ne comprends pas une ligne vba

Bonjour Gael,

C'est très clair, merci !
C'est "l'architecture" de Cel(cel.count) qui m'échappait, mais ton explication est limpide.

Donc si je comprends bien, et par curiosité, pour sélectionner l'avant dernière cellule, j'écrirais : Cel = Cel (Cel.count - 1)

C'est ça ?

merci encore pour ta réponse,
Bonne journée,

Le Roger
 
- 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

Retour