Dernière cellule tableau

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Filochard
Le #4743151
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

Philippe.R
Le #4743051
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" 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



LSteph
Le #4743041
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





claudy
Le #4742881
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" 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





Filochard
Le #4742841
Et ça va pas????


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

PS : CurrentRegion n'est pas fiable

claudy
Le #4742801
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" %23IRfzhO$
Et ça va pas????


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

PS : CurrentRegion n'est pas fiable






Filochard
Le #4742781
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)"

LSteph
Le #4742751
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" %23IRfzhO$
Et ça va pas????
Et si tu essayais les réponses que je t'ai données ?


PS : CurrentRegion n'est pas fiable










LSteph
Le #4742741
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






Modeste
Le #4742731
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)))

Publicité
Poster une réponse
Anonyme