OVH Cloud OVH Cloud

selection

23 réponses
Avatar
Misange
Coucou,
j'ai des données dans une plage qui va de la cellule A1 à ... Xn, X et n
étant variables., X+1 et N+1 étant vides.
Je voudrais sélectionner en VBA la plage A2:Xn avec une syntaxe qui ne
fasse pas 3 lignes à coup de end(xlright) et end(xldown)... sachant
qu'en prime il peut très bien n'y avoir qu'une seule ligne à
sélectionner (ex : A2:F2). Quel est le plus simple (et élégant ! c'est
comme en maths, l'élégance en VBA ça compte ;-)
k'you !

--

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta

10 réponses

1 2 3
Avatar
AV
C'est limpide !


Hum.. teste avec l'exemple que je t'ai fourni....
;-)
AV

Avatar
Misange
AV wrote:

C'est limpide !



Hum.. teste avec l'exemple que je t'ai fourni....
;-)
AV


Avec ton exemple je suis d'accord Alain, mais avec mes données ça colle.

Cela dit encore une fois, pour un cas général, je garde ta syntaxe.

--

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


Avatar
FxM
Bonjour,

A 2h15 du matin, j'ai jeté l'éponge suite à des problèmes pour envoyer
des messages sur le groupe.
Je faisais un mea culpa, reprécisais que je n'avais pas testé,
qu'effectivement il peut y avoir problème selon la position de la
ernière cellule et apportais une réponse globalement similaire (bien
moins concise) à celles qui sont indiquées ici après m'être plongé
pour une des vraies premières fois dans les entrailles de .find (qu'il
faut aller chercher dans l'aide à la main car F1 ne ramène rien) et ne
toujours pas avoir compris comment renvoyer l'adresse de cette
dernière cellule sous forme de fonction de feuille -non, je ne veux
pas arrêter cette phrase ;o) -.

Conclusion : avoir 2 PC (dont au moins un qui marche) et ne jamais
remettre au lendemain etc ....

@+
FxM




Misange wrote:

Ta proc marche surement mais c'est quand même un peu long ;-( (je sais
je suis difficile... Mais j'avais un truc de ce genre que je voulais
simplifier.
en l'occurence pour la soluce de FXM, c'est pas très genant la ligne du
dessous est vide...
J'ai un autre truc sur le gaz, plus simple mais la journée a été plus
que chargée (boulot !!) et je décroche pour ce soir.
Bonne journée aux Canadiens, bonne nuit aux autres

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


Denis Michon wrote:

Bonjour Misange,

Moi, Misange, je trouve que tu n'es pas très difficile !!!

;-))

Cette procédure fonctionne par intermittence ... cela dépend comment
tes données sont placées dans la feuille.


Salutations!


"Misange" a écrit dans le message de
news:
Merci FX, ça roule !

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta


FxM wrote:

Bonsoir Misange,

A tester comme d'hab :
Sub test2()
With Range("A2:IV65536")
zz = Range("A1:" & .Find("*", .Item(1), , , ,
xlPrevious).Address).Address
End With
End Sub

@+
FxM


Misange wrote:


Coucou,
j'ai des données dans une plage qui va de la cellule A1 à ... Xn, X et
n étant variables., X+1 et N+1 étant vides.
Je voudrais sélectionner en VBA la plage A2:Xn avec une syntaxe qui ne
fasse pas 3 lignes à coup de end(xlright) et end(xldown)... sachant
qu'en prime il peut très bien n'y avoir qu'une seule ligne à
sélectionner (ex : A2:F2). Quel est le plus simple (et élégant ! c'est
comme en maths, l'élégance en VBA ça compte ;-)
k'you !













Avatar
sabatier
le volatile n'avait-il point parlé de A2, daniel? allez ouste au piquet
pour ne pas avoir bien suivi et si tu récidives, je t'envoie sarkozy...
JPS

Misange wrote:

Daniel.M wrote:

With Range("A1").CurrentRegion
Intersect(.Offset(1), .Cells).Select
End With


C'est limpide !
adopté. Mais je garde sous le coude aussi la soluce d'Alain
Merci Daniel
--

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta



Avatar
Michel Gaboly
Bonjour, Jean-Paul,

En l'occurrence, c'est toi qui ne suit pas ;-)))

With Range("A1").CurrentRegion, permet de désigner l'ensemble
des cellules appartenant au même rectangle que la cellule A1,
rectangle délimité par les frontières de la feuille, la première
ligne entièrement vide rencontrée vers le bas, et le première
colonne entièrement vide rencontrée vers la droite.

Dans l'interface Excel, cela s'appelle en français la "Zone en
cours". Pour y accéder, "Edition, Atteindre... (ou le raccourci
F5), puis clic sur le bouton "Cellules...", et sur le bouton option
"Zone en cours".

Le Offset(1) permet de se référer à un rectangle de même taille,
mais décalé d'une ligne vers le bas.

L'intersection des 2 n'existe que si la seconde ligne de la feuille
n'est pas vide, et correspond au rectangle initial, à l'exclusion
de la ligne 1. On aboutit bien ici, à une plage commençant en A2

;-))))



le volatile n'avait-il point parlé de A2, daniel? allez ouste au piquet
pour ne pas avoir bien suivi et si tu récidives, je t'envoie sarkozy...
JPS

Misange wrote:

Daniel.M wrote:

With Range("A1").CurrentRegion
Intersect(.Offset(1), .Cells).Select
End With


C'est limpide !
adopté. Mais je garde sous le coude aussi la soluce d'Alain
Merci Daniel
--

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta



--
Cordialement,

Michel Gaboly
http://www.gaboly.com



Avatar
sabatier
merdum, michel, j'avions point vu le Offset(1) de daniel qui m'a déjà
pardonné, oeuf corse...
merci en tous cas d'avoir mes quinquets sur cette chose que je ne connaissais
pas...tiens, en parlant de quinquets, un peu de géographie : l'aéroport de
lyon a été construit sur la commune de satolas et non sur celle, toute
voisine, de meyzieu...et ce ne fut pas par hasard car si ledit aéroport avait
été sur cette commune, la JAT, la compagnie yugoslave à l'époque, aurait eu
une ligne Zagreb/Meyzieu....
tout ça pour te dire, michel, que, moi, ça ne me les a pas grébés ton
offset(1)...
jps

Michel Gaboly wrote:

Bonjour, Jean-Paul,

En l'occurrence, c'est toi qui ne suit pas ;-)))

With Range("A1").CurrentRegion, permet de désigner l'ensemble
des cellules appartenant au même rectangle que la cellule A1,
rectangle délimité par les frontières de la feuille, la première
ligne entièrement vide rencontrée vers le bas, et le première
colonne entièrement vide rencontrée vers la droite.

Dans l'interface Excel, cela s'appelle en français la "Zone en
cours". Pour y accéder, "Edition, Atteindre... (ou le raccourci
F5), puis clic sur le bouton "Cellules...", et sur le bouton option
"Zone en cours".

Le Offset(1) permet de se référer à un rectangle de même taille,
mais décalé d'une ligne vers le bas.

L'intersection des 2 n'existe que si la seconde ligne de la feuille
n'est pas vide, et correspond au rectangle initial, à l'exclusion
de la ligne 1. On aboutit bien ici, à une plage commençant en A2

;-))))


le volatile n'avait-il point parlé de A2, daniel? allez ouste au piquet
pour ne pas avoir bien suivi et si tu récidives, je t'envoie sarkozy...
JPS

Misange wrote:

Daniel.M wrote:

With Range("A1").CurrentRegion
Intersect(.Offset(1), .Cells).Select
End With


C'est limpide !
adopté. Mais je garde sous le coude aussi la soluce d'Alain
Merci Daniel
--

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta



--
Cordialement,

Michel Gaboly
http://www.gaboly.com





Avatar
sabatier
oups..
....d'avoir ouvert mes quinquets....

Michel Gaboly wrote:

Bonjour, Jean-Paul,

En l'occurrence, c'est toi qui ne suit pas ;-)))

With Range("A1").CurrentRegion, permet de désigner l'ensemble
des cellules appartenant au même rectangle que la cellule A1,
rectangle délimité par les frontières de la feuille, la première
ligne entièrement vide rencontrée vers le bas, et le première
colonne entièrement vide rencontrée vers la droite.

Dans l'interface Excel, cela s'appelle en français la "Zone en
cours". Pour y accéder, "Edition, Atteindre... (ou le raccourci
F5), puis clic sur le bouton "Cellules...", et sur le bouton option
"Zone en cours".

Le Offset(1) permet de se référer à un rectangle de même taille,
mais décalé d'une ligne vers le bas.

L'intersection des 2 n'existe que si la seconde ligne de la feuille
n'est pas vide, et correspond au rectangle initial, à l'exclusion
de la ligne 1. On aboutit bien ici, à une plage commençant en A2

;-))))


le volatile n'avait-il point parlé de A2, daniel? allez ouste au piquet
pour ne pas avoir bien suivi et si tu récidives, je t'envoie sarkozy...
JPS

Misange wrote:

Daniel.M wrote:

With Range("A1").CurrentRegion
Intersect(.Offset(1), .Cells).Select
End With


C'est limpide !
adopté. Mais je garde sous le coude aussi la soluce d'Alain
Merci Daniel
--

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta



--
Cordialement,

Michel Gaboly
http://www.gaboly.com





Avatar
Michel Gaboly
Re,

"déjà pardonné, oeuf corse..."

La question ne se pose même pas ;-)))



merdum, michel, j'avions point vu le Offset(1) de daniel qui m'a déjà
pardonné, oeuf corse...
merci en tous cas d'avoir mes quinquets sur cette chose que je ne connaissais
pas...tiens, en parlant de quinquets, un peu de géographie : l'aéroport de
lyon a été construit sur la commune de satolas et non sur celle, toute
voisine, de meyzieu...et ce ne fut pas par hasard car si ledit aéroport avait
été sur cette commune, la JAT, la compagnie yugoslave à l'époque, aurait eu
une ligne Zagreb/Meyzieu....
tout ça pour te dire, michel, que, moi, ça ne me les a pas grébés ton
offset(1)...
jps

Michel Gaboly wrote:

Bonjour, Jean-Paul,

En l'occurrence, c'est toi qui ne suit pas ;-)))

With Range("A1").CurrentRegion, permet de désigner l'ensemble
des cellules appartenant au même rectangle que la cellule A1,
rectangle délimité par les frontières de la feuille, la première
ligne entièrement vide rencontrée vers le bas, et le première
colonne entièrement vide rencontrée vers la droite.

Dans l'interface Excel, cela s'appelle en français la "Zone en
cours". Pour y accéder, "Edition, Atteindre... (ou le raccourci
F5), puis clic sur le bouton "Cellules...", et sur le bouton option
"Zone en cours".

Le Offset(1) permet de se référer à un rectangle de même taille,
mais décalé d'une ligne vers le bas.

L'intersection des 2 n'existe que si la seconde ligne de la feuille
n'est pas vide, et correspond au rectangle initial, à l'exclusion
de la ligne 1. On aboutit bien ici, à une plage commençant en A2

;-))))


le volatile n'avait-il point parlé de A2, daniel? allez ouste au piquet
pour ne pas avoir bien suivi et si tu récidives, je t'envoie sarkozy...
JPS

Misange wrote:

Daniel.M wrote:

With Range("A1").CurrentRegion
Intersect(.Offset(1), .Cells).Select
End With


C'est limpide !
adopté. Mais je garde sous le coude aussi la soluce d'Alain
Merci Daniel
--

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta



--
Cordialement,

Michel Gaboly
http://www.gaboly.com



--
Cordialement,

Michel Gaboly
http://www.gaboly.com





Avatar
sabatier
je t'interdis, michel, de répondre en lieu et place de daniel qui a plus d'un scud
dans son crisse de sac...comme on dit là-bas...
jps

Michel Gaboly wrote:

Re,

"déjà pardonné, oeuf corse..."

La question ne se pose même pas ;-)))


merdum, michel, j'avions point vu le Offset(1) de daniel qui m'a déjà
pardonné, oeuf corse...
merci en tous cas d'avoir mes quinquets sur cette chose que je ne connaissais
pas...tiens, en parlant de quinquets, un peu de géographie : l'aéroport de
lyon a été construit sur la commune de satolas et non sur celle, toute
voisine, de meyzieu...et ce ne fut pas par hasard car si ledit aéroport avait
été sur cette commune, la JAT, la compagnie yugoslave à l'époque, aurait eu
une ligne Zagreb/Meyzieu....
tout ça pour te dire, michel, que, moi, ça ne me les a pas grébés ton
offset(1)...
jps

Michel Gaboly wrote:

Bonjour, Jean-Paul,

En l'occurrence, c'est toi qui ne suit pas ;-)))

With Range("A1").CurrentRegion, permet de désigner l'ensemble
des cellules appartenant au même rectangle que la cellule A1,
rectangle délimité par les frontières de la feuille, la première
ligne entièrement vide rencontrée vers le bas, et le première
colonne entièrement vide rencontrée vers la droite.

Dans l'interface Excel, cela s'appelle en français la "Zone en
cours". Pour y accéder, "Edition, Atteindre... (ou le raccourci
F5), puis clic sur le bouton "Cellules...", et sur le bouton option
"Zone en cours".

Le Offset(1) permet de se référer à un rectangle de même taille,
mais décalé d'une ligne vers le bas.

L'intersection des 2 n'existe que si la seconde ligne de la feuille
n'est pas vide, et correspond au rectangle initial, à l'exclusion
de la ligne 1. On aboutit bien ici, à une plage commençant en A2

;-))))


le volatile n'avait-il point parlé de A2, daniel? allez ouste au piquet
pour ne pas avoir bien suivi et si tu récidives, je t'envoie sarkozy...
JPS

Misange wrote:

Daniel.M wrote:

With Range("A1").CurrentRegion
Intersect(.Offset(1), .Cells).Select
End With


C'est limpide !
adopté. Mais je garde sous le coude aussi la soluce d'Alain
Merci Daniel
--

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta



--
Cordialement,

Michel Gaboly
http://www.gaboly.com



--
Cordialement,

Michel Gaboly
http://www.gaboly.com







Avatar
Michel Gaboly
Re, Jean-Paul,

Ton acuïté visuelle (je n'ose dire autre chose :-))) doit baisser si tu confonds
maintenant un témoignage de sympathie avec un scud ;-))))


je t'interdis, michel, de répondre en lieu et place de daniel qui a plus d'un scud
dans son crisse de sac...comme on dit là-bas...
jps

Michel Gaboly wrote:

Re,

"déjà pardonné, oeuf corse..."

La question ne se pose même pas ;-)))


merdum, michel, j'avions point vu le Offset(1) de daniel qui m'a déjà
pardonné, oeuf corse...
merci en tous cas d'avoir mes quinquets sur cette chose que je ne connaissais
pas...tiens, en parlant de quinquets, un peu de géographie : l'aéroport de
lyon a été construit sur la commune de satolas et non sur celle, toute
voisine, de meyzieu...et ce ne fut pas par hasard car si ledit aéroport avait
été sur cette commune, la JAT, la compagnie yugoslave à l'époque, aurait eu
une ligne Zagreb/Meyzieu....
tout ça pour te dire, michel, que, moi, ça ne me les a pas grébés ton
offset(1)...
jps

Michel Gaboly wrote:

Bonjour, Jean-Paul,

En l'occurrence, c'est toi qui ne suit pas ;-)))

With Range("A1").CurrentRegion, permet de désigner l'ensemble
des cellules appartenant au même rectangle que la cellule A1,
rectangle délimité par les frontières de la feuille, la première
ligne entièrement vide rencontrée vers le bas, et le première
colonne entièrement vide rencontrée vers la droite.

Dans l'interface Excel, cela s'appelle en français la "Zone en
cours". Pour y accéder, "Edition, Atteindre... (ou le raccourci
F5), puis clic sur le bouton "Cellules...", et sur le bouton option
"Zone en cours".

Le Offset(1) permet de se référer à un rectangle de même taille,
mais décalé d'une ligne vers le bas.

L'intersection des 2 n'existe que si la seconde ligne de la feuille
n'est pas vide, et correspond au rectangle initial, à l'exclusion
de la ligne 1. On aboutit bien ici, à une plage commençant en A2

;-))))


le volatile n'avait-il point parlé de A2, daniel? allez ouste au piquet
pour ne pas avoir bien suivi et si tu récidives, je t'envoie sarkozy...
JPS

Misange wrote:

Daniel.M wrote:

With Range("A1").CurrentRegion
Intersect(.Offset(1), .Cells).Select
End With


C'est limpide !
adopté. Mais je garde sous le coude aussi la soluce d'Alain
Merci Daniel
--

Misange migrateuse http://www.excelabo.net
mail : http://cerbermail.com/?k5Q8Dh2mta



--
Cordialement,

Michel Gaboly
http://www.gaboly.com



--
Cordialement,

Michel Gaboly
http://www.gaboly.com



--
Cordialement,

Michel Gaboly
http://www.gaboly.com







1 2 3