Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Dernière cellule tableau

17 réponses
Avatar
tip.tiptop
Bonjour,
1 - Comment atteindre la dernière cellule d'un tableau ou plus précisement
comment récupérer dans une variable le numéro de ligne correspondant à la
dernière cellule d'un tableau.

2 - Comment sélectionner un tableau de la cellule (A2) jusqu'a dernière
cellule tableau

Par avance merci

10 réponses

1 2
Avatar
Filochard
1 - Comment atteindre la dernière cellule d'un tableau ou plus précisement
comment récupérer dans une variable le numéro de ligne correspondant à la
dernière cellule d'un tableau.


x = Cells.Find("*", , xlFormulas, , xlByRows, xlPrevious).Row
ou bien avec une plage nommée :
x = [monTableau].Find("*", , xlFormulas, , xlByRows, xlPrevious).Row

2 - Comment sélectionner un tableau de la cellule (A2) jusqu'a dernière
cellule tableau


Range("A2", Cells(Cells.Find("*", , , , xlByRows, xlPrevious).Row,
Cells.Find("*", , , , xlByColumns, xlPrevious).Column)).Select

Avatar
Philippe.R
Bonsoir,
Si par pur hasard on connait la colonne qui contient le plus grand nombre de
lignes, supposons ici A), on peut utiliser aussi :

maderlig = Range("A65536").End(xlUp).Row

--
Avec plaisir
Philippe.R
"tip.tiptop" a écrit dans le message de
news:46f3c9a8$0$5973$
Bonjour,
1 - Comment atteindre la dernière cellule d'un tableau ou plus précisement
comment récupérer dans une variable le numéro de ligne correspondant à la
dernière cellule d'un tableau.

2 - Comment sélectionner un tableau de la cellule (A2) jusqu'a dernière
cellule tableau

Par avance merci



Avatar
LSteph
Bonsoir TipTipTop,

Il suffit d'utiliser CurrentRegion

1 -...
comment récupérer dans une variable le numéro de ligne correspondant à la
dernière cellule d'un tableau.




myr =[a2].CurrentRegion.Cells(.Cells.Count).Row

2 -Comment sélectionner...



[a2].CurrentRegion.Select

--
LSteph

(Exemple qui illustre les deux questions:

Sub tabA2()
Dim myr As Long
With [a2].CurrentRegion
myr = .Cells(.Cells.Count).Row
.Select 'pour selectionner
End With
MsgBox myr
End Sub

)

Bonjour,
1 - Comment atteindre la dernière cellule d'un tableau ou plus précisement
comment récupérer dans une variable le numéro de ligne correspondant à la
dernière cellule d'un tableau.

2 - Comment sélectionner un tableau de la cellule (A2) jusqu'a dernière
cellule tableau

Par avance merci





Avatar
claudy
Bonjour, j'ai essayé avec :
Sub tabA2_bis()
Dim myr As Long
'With [a2].CurrentRegion
myr = [a2].CurrentRegion.Cells(.Cells.Count).Row
'.Select 'pour selectionner
'End With
MsgBox myr
End Sub
Et ça va pas????
Bonne journée
Merci,
Claudy



"LSteph" a écrit dans le message de news:
OG1JK%23H$
Bonsoir TipTipTop,

Il suffit d'utiliser CurrentRegion

1 -...
comment récupérer dans une variable le numéro de ligne correspondant à
la dernière cellule d'un tableau.




myr =[a2].CurrentRegion.Cells(.Cells.Count).Row

2 -Comment sélectionner...



[a2].CurrentRegion.Select

--
LSteph

(Exemple qui illustre les deux questions:

Sub tabA2()
Dim myr As Long
With [a2].CurrentRegion
myr = .Cells(.Cells.Count).Row
.Select 'pour selectionner
End With
MsgBox myr
End Sub

)

Bonjour,
1 - Comment atteindre la dernière cellule d'un tableau ou plus
précisement comment récupérer dans une variable le numéro de ligne
correspondant à la dernière cellule d'un tableau.

2 - Comment sélectionner un tableau de la cellule (A2) jusqu'a dernière
cellule tableau

Par avance merci





Avatar
Filochard
Et ça va pas????


Et si tu essayais les réponses que je t'ai données ?

PS : CurrentRegion n'est pas fiable

Avatar
claudy
Ce que j'aime bien dans la proposition de L.steph:

Sub tabA2()
Dim myr As Long
With [a2].CurrentRegion
myr = .Cells(.Cells.Count).Row
.Select 'pour selectionner
End With
MsgBox myr
End Sub

Si j'ai une ligne de titres en 2:2,
et que 3:3 est vide et qu'il existe des cellules non vide dans A:A, la
sélection se fera en 3:3!
Pas la tienne qui ira dans la cellule Range("A64000").end(xlup).select

Mais , en voulant raccourcir le code ci dessus en
myr = [a2].CurrentRegion.Cells(.Cells.Count).Row
(sans le "With")
cela ne va pas et je voudrais savoir pourquoi!!
A+



"Filochard" <Forton.Peloz@:wanadoo.fr> a écrit dans le message de news:
%23IRfzhO$
Et ça va pas????


Et si tu essayais les réponses que je t'ai données ?

PS : CurrentRegion n'est pas fiable






Avatar
Filochard
Ce que j'aime bien dans la proposition de L.steph:
Si j'ai une ligne de titres en 2:2,
et que 3:3 est vide et qu'il existe des cellules non vide dans A:A, la
sélection se fera en 3:3!


Si cette solution te convient c'est que ta question est mal formulée car "le
numéro de ligne correspondant à la dernière cellule d'un tableau" n'est pas
celui de la première ligne vide moins 1 !
Ta questioon aurait du être :
"Quel est le N° de la première ligne non vide avant la première ligne vide"

Par ailleurs, la propriété "CurrentRegion" prendra TOUJOURS en compte en compte
la ligne 1 (ligne au-dessus) si celle-ci comprend ne serait-ce qu'une seulle
cellule renseignée


Pas la tienne qui ira dans la cellule Range("A64000").end(xlup).select


Absolument pas !
Si ça correspond au même résultat c'est que la dernière cellule renseignée est,
par hasard, en colonne A
La méthode "Find" n'a rien à voir avec "Range("A64000").end(xlup)"

Avatar
LSteph
Bonjour Claudy,

Lorsque tu places un point avant l'expression c'est en
référence au with
Mais , en voulant raccourcir le code ci dessus en
myr = [a2].CurrentRegion.Cells(.Cells.Count).Row
(sans le "With")
cela ne va pas



Normal (.Cells.Count) cherche à quoi il se rattache
Sans le with cela oblige à répèter [a2].CurrentRegion


Cordialement.

--
LSteph

Nota: CurrentRegion ne fonctionnera pas si une cellule est complètement
isolée ce qui n'arrivera pas si on tape en A dans un tableau constitué
efficacement, pas de lignes ou colonnes entièrement vides et aucune
cellule vides ni fusions dans la ligne des titres , ni la première colonne.
La première colonne devant être prioritairement réservée à un élément
qui existe pour chaque enregistement(ligne).
Ce n'est qu'un concept, mais je le privilégie.


Ce que j'aime bien dans la proposition de L.steph:

Sub tabA2()
Dim myr As Long
With [a2].CurrentRegion
myr = .Cells(.Cells.Count).Row
.Select 'pour selectionner
End With
MsgBox myr
End Sub

Si j'ai une ligne de titres en 2:2,
et que 3:3 est vide et qu'il existe des cellules non vide dans A:A, la
sélection se fera en 3:3!
Pas la tienne qui ira dans la cellule Range("A64000").end(xlup).select

Mais , en voulant raccourcir le code ci dessus en
myr = [a2].CurrentRegion.Cells(.Cells.Count).Row
(sans le "With")
cela ne va pas et je voudrais savoir pourquoi!!
A+



"Filochard" <Forton.Peloz@:wanadoo.fr> a écrit dans le message de news:
%23IRfzhO$
Et ça va pas????
Et si tu essayais les réponses que je t'ai données ?


PS : CurrentRegion n'est pas fiable










Avatar
LSteph
Bonjour,

Tu devrais lire l'aide sur CurrentRegion ou les précisions que j'ai
ajouté en Nota à Claudy.

En l'occurence si une cellule est complètement
isolée CurrentRegion restera sur cette cellule, c'est normal.

Le code que tu as proposé serait-il fiable?
Remplis A1:a50 et A1:f50

ensuite mets x en d5 , cette cellule est isolée

Selon ton code on ferait:
Range("D5", Cells(Cells.Find("*", , , , xlByRows, xlPrevious).Row,
Cells.Find("*", , , , xlByColumns, xlPrevious).Column)).Select

Il te suffit de tester!


--
LSteph

Et ça va pas????


Et si tu essayais les réponses que je t'ai données ?

PS : CurrentRegion n'est pas fiable






Avatar
Modeste
Bonsour® Filochard avec ferveur ;o))) vous nous disiez :

PS : CurrentRegion n'est pas fiable


??? ;o)))
Currentregion est parfaitement fiable !!!!!
c'est l'utilisation dans ce contexte imprécis qui n'est pas trés adaptée....

Edition >Atteindre >Cellules > Zone En Cours
CurrentRégion est une plage limitée par toute combinaison de lignes ET de
colonnes vides.
et est donc dissociée de la notion d'un tableau prédéfini qui comprendrait une
OU des lignes et colonnes vides.

Attention à ne pas confondre avec UsedRange
Edition >Atteindre >Cellules >derniere Cellule
qui correspond à Plage utilisée
ceci voulant dire plage de cellule non vierges ou n'ayant jamais contenue ou
subie de transformations !!!!

Une cellule située En IV65535 dont on aurait simplement modifier le format sans
rien saisir dedans n'est plus vierge
et même si la feuille ne contient qu'une valeur en A1
le UsedRange correspond dans ce cas à la feuille ENTIERE !!!!





--
--
@+
;o)))

1 2