OVH Cloud OVH Cloud

Selction de plage de donnée "clairsemé"

6 réponses
Avatar
Soupull
Bonsoir,

je souhaite pouvoir sélectionner une plage complète de cellule dans ma
macro.
J'ai tenté de la faire avec l'enregistreur en procédant ainsi Je
sélectionne les cellules de la première lignede mon tableau puis la
combinaison de touche Ctrl+Shift+Bas ce qui donne :

Range("A2:P2").Select
Range(Selection, Selection.End(xlDown)).Select

le problême c'est que certaine colonnes ne sont pas "pleine" de donnée
et que du coup, la sélection s'arrête à la dernière cellule non-vide.

Comment faire ?

Pour plus de compréhension, voici joint le type de fichier utilisé. Dans
cet exemple je souhaite que ma macro sélection la plage A2 à P10

http://cjoint.com/?dcxfIk58kK

6 réponses

Avatar
Jacky
Bonsoir;
Tu y étais presque.
'---------
Sub jj()
'Range("a2:p10").Select
'ou un peu plus court
[a2:p10].Select
End Sub
'--------------
Voir ici:
http://cjoint.com/?dcxSZT71ow
Bon courage
JJ

"Soupull" a écrit dans le message de news:
ew%
Bonsoir,

je souhaite pouvoir sélectionner une plage complète de cellule dans ma
macro.
J'ai tenté de la faire avec l'enregistreur en procédant ainsi Je
sélectionne les cellules de la première lignede mon tableau puis la
combinaison de touche Ctrl+Shift+Bas ce qui donne :

Range("A2:P2").Select
Range(Selection, Selection.End(xlDown)).Select

le problême c'est que certaine colonnes ne sont pas "pleine" de donnée et
que du coup, la sélection s'arrête à la dernière cellule non-vide.

Comment faire ?

Pour plus de compréhension, voici joint le type de fichier utilisé. Dans
cet exemple je souhaite que ma macro sélection la plage A2 à P10

http://cjoint.com/?dcxfIk58kK


Avatar
Soupull
Merci pour la rép Jacky, mais j'avais oublié de préciser que cette
source de donnée varie d'un utilisateur à l'autre.
En fait le but de tout ca est de sélectionner entièrement la plage où se
trouve des données et qu'elle parte par mail ensuite.

Du coup je ne peut pas figer une plage par la commande Range
("A2:P10").Select

si quelqu'un a une idée...

Soupull


Bonsoir;
Tu y étais presque.
'---------
Sub jj()
'Range("a2:p10").Select
'ou un peu plus court
[a2:p10].Select
End Sub
'--------------
Voir ici:
http://cjoint.com/?dcxSZT71ow
Bon courage
JJ

"Soupull" a écrit dans le message de news:
ew%
Bonsoir,

je souhaite pouvoir sélectionner une plage complète de cellule dans ma
macro.
J'ai tenté de la faire avec l'enregistreur en procédant ainsi Je
sélectionne les cellules de la première lignede mon tableau puis la
combinaison de touche Ctrl+Shift+Bas ce qui donne :

Range("A2:P2").Select
Range(Selection, Selection.End(xlDown)).Select

le problême c'est que certaine colonnes ne sont pas "pleine" de donnée et
que du coup, la sélection s'arrête à la dernière cellule non-vide.

Comment faire ?

Pour plus de compréhension, voici joint le type de fichier utilisé. Dans
cet exemple je souhaite que ma macro sélection la plage A2 à P10

http://cjoint.com/?dcxfIk58kK







Avatar
Jacky
Re..
Alors..
Range("A2" & SpecialCells(xlLastCell)).Select

Salutations
JJ

"Soupull" a écrit dans le message de news:

Merci pour la rép Jacky, mais j'avais oublié de préciser que cette source
de donnée varie d'un utilisateur à l'autre.
En fait le but de tout ca est de sélectionner entièrement la plage où se
trouve des données et qu'elle parte par mail ensuite.

Du coup je ne peut pas figer une plage par la commande Range
("A2:P10").Select

si quelqu'un a une idée...

Soupull


Bonsoir;
Tu y étais presque.
'---------
Sub jj()
'Range("a2:p10").Select
'ou un peu plus court
[a2:p10].Select
End Sub
'--------------
Voir ici:
http://cjoint.com/?dcxSZT71ow
Bon courage
JJ

"Soupull" a écrit dans le message de news:
ew%
Bonsoir,

je souhaite pouvoir sélectionner une plage complète de cellule dans ma
macro.
J'ai tenté de la faire avec l'enregistreur en procédant ainsi Je
sélectionne les cellules de la première lignede mon tableau puis la
combinaison de touche Ctrl+Shift+Bas ce qui donne :

Range("A2:P2").Select
Range(Selection, Selection.End(xlDown)).Select

le problême c'est que certaine colonnes ne sont pas "pleine" de donnée
et
que du coup, la sélection s'arrête à la dernière cellule non-vide.

Comment faire ?

Pour plus de compréhension, voici joint le type de fichier utilisé. Dans
cet exemple je souhaite que ma macro sélection la plage A2 à P10

http://cjoint.com/?dcxfIk58kK








Avatar
Jacky
Ouppssss
Plutôt:
Range("A2:" & ActiveCell.SpecialCells(xlLastCell).Address).Select

JJ

"Soupull" a écrit dans le message de news:

Merci pour la rép Jacky, mais j'avais oublié de préciser que cette source
de donnée varie d'un utilisateur à l'autre.
En fait le but de tout ca est de sélectionner entièrement la plage où se
trouve des données et qu'elle parte par mail ensuite.

Du coup je ne peut pas figer une plage par la commande Range
("A2:P10").Select

si quelqu'un a une idée...

Soupull


Bonsoir;
Tu y étais presque.
'---------
Sub jj()
'Range("a2:p10").Select
'ou un peu plus court
[a2:p10].Select
End Sub
'--------------
Voir ici:
http://cjoint.com/?dcxSZT71ow
Bon courage
JJ

"Soupull" a écrit dans le message de news:
ew%
Bonsoir,

je souhaite pouvoir sélectionner une plage complète de cellule dans ma
macro.
J'ai tenté de la faire avec l'enregistreur en procédant ainsi Je
sélectionne les cellules de la première lignede mon tableau puis la
combinaison de touche Ctrl+Shift+Bas ce qui donne :

Range("A2:P2").Select
Range(Selection, Selection.End(xlDown)).Select

le problême c'est que certaine colonnes ne sont pas "pleine" de donnée
et
que du coup, la sélection s'arrête à la dernière cellule non-vide.

Comment faire ?

Pour plus de compréhension, voici joint le type de fichier utilisé. Dans
cet exemple je souhaite que ma macro sélection la plage A2 à P10

http://cjoint.com/?dcxfIk58kK








Avatar
AV
| Plutôt:
| Range("A2:" & ActiveCell.SpecialCells(xlLastCell).Address).Select

Ave Jacky,
L'utilisation de "xlLastCell" est très incertaine.....
Fait l'expérience de saisir une valeur quelconque en IV65536 et de l'effacer
aussitôt
Ensuite, exécute ton instruction....
"xlLastCell" présente le facheux inconvénient de "garder les traces" !

Mieux vaut utiliser une syntaxe de ce type :

Sub zz_Select()
Lx = Cells.Find("*", [A1], 1, , 1, 2).Row
Cx = Cells.Find("*", [A1], 1, , 2, 2).Column
Range([A2], Cells(Lx, Cx)).Select
End Sub

AV
Avatar
Jacky
Bonjour Alain

L'utilisation de "xlLastCell" est très incertaine.....
Oui, tu as tout à fait raison.

Inconvénient qui disparaît dès que l'on procède à un enregistrement, bizarre
quand même.
Merci d'avoir rectifié cette mauvaise direction.
Reste plus qu'à Soupull en enfilant son T-shirt applique ton code en
remplacement du mien ;o))

Salutations
JJ

"AV" a écrit dans le message de
news:
| Plutôt:
| Range("A2:" & ActiveCell.SpecialCells(xlLastCell).Address).Select

Ave Jacky,
L'utilisation de "xlLastCell" est très incertaine.....
Fait l'expérience de saisir une valeur quelconque en IV65536 et de
l'effacer

aussitôt
Ensuite, exécute ton instruction....
"xlLastCell" présente le facheux inconvénient de "garder les traces" !

Mieux vaut utiliser une syntaxe de ce type :

Sub zz_Select()
Lx = Cells.Find("*", [A1], 1, , 1, 2).Row
Cx = Cells.Find("*", [A1], 1, , 2, 2).Column
Range([A2], Cells(Lx, Cx)).Select
End Sub

AV