OVH Cloud OVH Cloud

selection d'une plage

7 réponses
Avatar
aurelie
Bonjour à tous,
Je fais mes premiers pas en VisualBasic et je dois avouer que votre forum et
le site Excelabo m'aident beaucoup. je n'ai pourtant pas réussi à y trouver
la réponse à ma question que je vous soumet donc:
Je voudrez sélectionner une plage de cellules qui part de A1 jusqu'à la
dernière cellule contenant une donnée. L'adresse de cette cellule correspond
donc à l'intersection entre la dernière colonne non vide et à la dernière
ligne non vide.
Pour l'instant, je ne parviens à sélectionner qu'une colonne avec une
formule du type:
Range("A1:A" & [A65536].End(xlUp).Row).Select

J'espère que je suis suffisament clair, n'hésitez pas à me demander de
réexpliquer mon problème si vous ne le comprenez pas.

Merci d'avance pour votre aide.

Cordialement,

Aurélie

7 réponses

Avatar
Pierre Fauconnier
Bonjour

Feuil1.UsedRange.Cells(Feuil1.UsedRange.Rows.Count,
Feuil1.UsedRange.Columns.Count).Address
donne la dernière cellule non vide la plus en bas et la plus droite de la
feuille.

Attention. Lorsque des cellules, lignes ou colonnes ont été supprimées, il
faut enregistrer le fichier pour que cette donnée soit correcte

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"aurelie" a écrit dans le message de
news:
Bonjour à tous,
Je fais mes premiers pas en VisualBasic et je dois avouer que votre forum
et
le site Excelabo m'aident beaucoup. je n'ai pourtant pas réussi à y
trouver
la réponse à ma question que je vous soumet donc:
Je voudrez sélectionner une plage de cellules qui part de A1 jusqu'à la
dernière cellule contenant une donnée. L'adresse de cette cellule
correspond
donc à l'intersection entre la dernière colonne non vide et à la dernière
ligne non vide.
Pour l'instant, je ne parviens à sélectionner qu'une colonne avec une
formule du type:
Range("A1:A" & [A65536].End(xlUp).Row).Select

J'espère que je suis suffisament clair, n'hésitez pas à me demander de
réexpliquer mon problème si vous ne le comprenez pas.

Merci d'avance pour votre aide.

Cordialement,

Aurélie


Avatar
Pierre Fauconnier
Re...

Si tu ne veux pas sauvegarder pour obtenir la dernière cellule, tu peux
utiliser ceci

Function Derniere_Cellule() As Range
Dim Lig As Long, Col As Long
Dim Lig_Valeur As Long
Dim Col_Valeur As Long

For Lig = 1 To 65536
If Lig_Valeur < Cells(Lig, 256).End(xlToLeft).Column Then Lig_Valeur
= Cells(Lig, 256).End(xlToLeft).Column

Next Lig

For Col = 1 To 256
If Col_Valeur < Cells(65536, Col).End(xlUp).Row Then Col_Valeur =
Cells(65536, Col).End(xlUp).Row

Next Col
Set Derniere_Cellule = Cells(Col_Valeur, Lig_Valeur)
End Function

cette fonction renvoie un objet cellule.
Pour connaître l'adresse, tu pourras utiliser
Adresse = Derniere_cellule().Address

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"aurelie" a écrit dans le message de
news:
Bonjour à tous,
Je fais mes premiers pas en VisualBasic et je dois avouer que votre forum
et
le site Excelabo m'aident beaucoup. je n'ai pourtant pas réussi à y
trouver
la réponse à ma question que je vous soumet donc:
Je voudrez sélectionner une plage de cellules qui part de A1 jusqu'à la
dernière cellule contenant une donnée. L'adresse de cette cellule
correspond
donc à l'intersection entre la dernière colonne non vide et à la dernière
ligne non vide.
Pour l'instant, je ne parviens à sélectionner qu'une colonne avec une
formule du type:
Range("A1:A" & [A65536].End(xlUp).Row).Select

J'espère que je suis suffisament clair, n'hésitez pas à me demander de
réexpliquer mon problème si vous ne le comprenez pas.

Merci d'avance pour votre aide.

Cordialement,

Aurélie


Avatar
aurelie
Merci bcp pour vos réponses très rapides, je me plonge aussitôt dans le test
de ses macros et vous recontacte si je rencontre à nouveau un problème.

Aurélie


Re...

Si tu ne veux pas sauvegarder pour obtenir la dernière cellule, tu peux
utiliser ceci

Function Derniere_Cellule() As Range
Dim Lig As Long, Col As Long
Dim Lig_Valeur As Long
Dim Col_Valeur As Long

For Lig = 1 To 65536
If Lig_Valeur < Cells(Lig, 256).End(xlToLeft).Column Then Lig_Valeur
= Cells(Lig, 256).End(xlToLeft).Column

Next Lig

For Col = 1 To 256
If Col_Valeur < Cells(65536, Col).End(xlUp).Row Then Col_Valeur =
Cells(65536, Col).End(xlUp).Row

Next Col
Set Derniere_Cellule = Cells(Col_Valeur, Lig_Valeur)
End Function

cette fonction renvoie un objet cellule.
Pour connaître l'adresse, tu pourras utiliser
Adresse = Derniere_cellule().Address

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"aurelie" a écrit dans le message de
news:
Bonjour à tous,
Je fais mes premiers pas en VisualBasic et je dois avouer que votre forum
et
le site Excelabo m'aident beaucoup. je n'ai pourtant pas réussi à y
trouver
la réponse à ma question que je vous soumet donc:
Je voudrez sélectionner une plage de cellules qui part de A1 jusqu'à la
dernière cellule contenant une donnée. L'adresse de cette cellule
correspond
donc à l'intersection entre la dernière colonne non vide et à la dernière
ligne non vide.
Pour l'instant, je ne parviens à sélectionner qu'une colonne avec une
formule du type:
Range("A1:A" & [A65536].End(xlUp).Row).Select

J'espère que je suis suffisament clair, n'hésitez pas à me demander de
réexpliquer mon problème si vous ne le comprenez pas.

Merci d'avance pour votre aide.

Cordialement,

Aurélie







Avatar
anonymousA
bonjour,

du à AV,

'** l'index de la dernière ligne renseignée :
Lx = Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row

'** l'index de la dernière colonne renseignée :
Cx = Cells.Find("*", [A1], , , xlByColumns, xlPrevious).Column

'La dernière cellule d'un tableau (l'intersection de la dernière ligne
'renseignée et dernière colonne renseignée)
'Tableau démarrant en A1 :
MsgBox Cells(Lx, Cx).Address

A+


Bonjour à tous,
Je fais mes premiers pas en VisualBasic et je dois avouer que votre forum et
le site Excelabo m'aident beaucoup. je n'ai pourtant pas réussi à y trouver
la réponse à ma question que je vous soumet donc:
Je voudrez sélectionner une plage de cellules qui part de A1 jusqu'à la
dernière cellule contenant une donnée. L'adresse de cette cellule correspond
donc à l'intersection entre la dernière colonne non vide et à la dernière
ligne non vide.
Pour l'instant, je ne parviens à sélectionner qu'une colonne avec une
formule du type:
Range("A1:A" & [A65536].End(xlUp).Row).Select

J'espère que je suis suffisament clair, n'hésitez pas à me demander de
réexpliquer mon problème si vous ne le comprenez pas.

Merci d'avance pour votre aide.

Cordialement,

Aurélie


Avatar
ChrisV
Bonjour Aurélie,

Range("A1:" & [A1].SpecialCells(xlCellTypeLastCell).Address).Select


ChrisV


"aurelie" a écrit dans le message de
news:
Bonjour à tous,
Je fais mes premiers pas en VisualBasic et je dois avouer que votre forum
et
le site Excelabo m'aident beaucoup. je n'ai pourtant pas réussi à y
trouver
la réponse à ma question que je vous soumet donc:
Je voudrez sélectionner une plage de cellules qui part de A1 jusqu'à la
dernière cellule contenant une donnée. L'adresse de cette cellule
correspond
donc à l'intersection entre la dernière colonne non vide et à la dernière
ligne non vide.
Pour l'instant, je ne parviens à sélectionner qu'une colonne avec une
formule du type:
Range("A1:A" & [A65536].End(xlUp).Row).Select

J'espère que je suis suffisament clair, n'hésitez pas à me demander de
réexpliquer mon problème si vous ne le comprenez pas.

Merci d'avance pour votre aide.

Cordialement,

Aurélie


Avatar
aurelie
ça marche! Merci beaucoup pour votre aide et pour votre rapidité.
Je vais maintenant pouvoir me lancer dans mon projet!


Re...

Si tu ne veux pas sauvegarder pour obtenir la dernière cellule, tu peux
utiliser ceci

Function Derniere_Cellule() As Range
Dim Lig As Long, Col As Long
Dim Lig_Valeur As Long
Dim Col_Valeur As Long

For Lig = 1 To 65536
If Lig_Valeur < Cells(Lig, 256).End(xlToLeft).Column Then Lig_Valeur
= Cells(Lig, 256).End(xlToLeft).Column

Next Lig

For Col = 1 To 256
If Col_Valeur < Cells(65536, Col).End(xlUp).Row Then Col_Valeur =
Cells(65536, Col).End(xlUp).Row

Next Col
Set Derniere_Cellule = Cells(Col_Valeur, Lig_Valeur)
End Function

cette fonction renvoie un objet cellule.
Pour connaître l'adresse, tu pourras utiliser
Adresse = Derniere_cellule().Address

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"aurelie" a écrit dans le message de
news:
Bonjour à tous,
Je fais mes premiers pas en VisualBasic et je dois avouer que votre forum
et
le site Excelabo m'aident beaucoup. je n'ai pourtant pas réussi à y
trouver
la réponse à ma question que je vous soumet donc:
Je voudrez sélectionner une plage de cellules qui part de A1 jusqu'à la
dernière cellule contenant une donnée. L'adresse de cette cellule
correspond
donc à l'intersection entre la dernière colonne non vide et à la dernière
ligne non vide.
Pour l'instant, je ne parviens à sélectionner qu'une colonne avec une
formule du type:
Range("A1:A" & [A65536].End(xlUp).Row).Select

J'espère que je suis suffisament clair, n'hésitez pas à me demander de
réexpliquer mon problème si vous ne le comprenez pas.

Merci d'avance pour votre aide.

Cordialement,

Aurélie







Avatar
AV
C'est une bonne idée que de rappeller que "UsedRange" et autre
"xlCellTypeLastCell" sont d'une fiabilité tout à fait douteuse

;-)
AV