Selection d'une plage variable [Fermé]

- - Dernière réponse : pijaku
Messages postés
12253
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
19 juillet 2019
- 5 févr. 2016 à 09:32
Bonjour à tous,



Please help, je voudrais selectionner une plage vers le bas, en partant de la cellule active, jusqu'à une ligne que j'ai mémorisé dans "dernlign".

Je m'en sors pas.

J'ai ça

Range(Selection, Selection.End(xlDown)).Select

mais je voudrais l'arrêter à dernlign.

Merci
Afficher la suite 

3 réponses

Messages postés
16002
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
5 décembre 2019
2833
0
Merci
bonjour

Dim plage As Range, debut As String, fin As String

debut = ActiveCell.Address
fin = Columns(ActiveCell.Column).Find(what:="*", searchdirection:=xlPrevious).Address
Set plage = Range(debut & ":" & fin)
MsgBox plage.Address 'vérif
oula ! Carrément.

Et il est où dernlign ?
A quoi sert la msgbox ?
Messages postés
575
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
30 mars 2016
12
-1
Merci
Bonjour,

Je ne suis pas bien sûr d'avoir compris :vous souhaitez sélectionner la plage entre la cellule active en allant vers le bas jusqu'à la cellule en "dernlign" ?

Si oui, il vous suffit d'un simple Range(...).. pouvez-vous nous donner votre code entier pour identifier au plus simple la cellule active svp ?
-2
Merci
D'abord, pour identifier la derniere ligne du tableau, je fais :

Range("B5").Select
Selection.End(xlDown).Select
dernlign = Selection.Row

Puis, plus tard, je me trouve sur une cellule quelconque, et j'ai besoin de selection une plage en partant de cette cellule, en descendant jusqu'à la ligne mémorisée.

D'habitude, je fais :

Range("G6:G" & dernlign).Select

Mais là, je ne suis pas forcément en G.

Donc j'ai fais :

Range(Selection, Selection.End(xlDown)).Select

Mais il va jusqu'en bas.
pijaku
Messages postés
12253
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
19 juillet 2019
2242 -
Essaie ce test, ça te montrera ce qu'est un MsgBox...
Sub test()
MsgBox Selection.Address
MsgBox Split(Selection.Address, "$")(1)
Dim Lettre As String, dernLign As Long, PremLign As Integer
PremLign = 6
dernLign = Range("B5").End(xlDown).Row
Lettre = Split(Selection.Address, "$")(1)
MsgBox Range(Lettre & PremLign & ":" & Lettre & dernLign).Address
End Sub
michel_m
Messages postés
16002
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
5 décembre 2019
2833 > pijaku
Messages postés
12253
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
19 juillet 2019
-
bonjour Frank

dernLign = Range("B5").End(xlDown).Row

thread bizarre car apparemment non fiable:
si il y a une cellule vide avant la dernière ligne la ligne renvoyée sera la ligne de cette cellule
- d'après AV, MVP*Excel, la seule fiable est celle que j'emploie d'après ces conseils.
Je t'envoie le classeur(utilisation de la fonction "evaluate") en MP

Quant à Dror, je le remercie pour sa politesse et son esprit particulièrement ouvert...
  • MVP: Most valuable Professional, titre attribué par Maison mère Microsoft et attribué annuellement
pijaku
Messages postés
12253
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
19 juillet 2019
2242 > michel_m
Messages postés
16002
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
5 décembre 2019
-
Salut Michel,

Oui je sais que ce code n'est pas fiable, j'ai fait une fiche pratique à ce sujet...
J'ai juste repris ce qu'annonce le demandeur.
Après ma réponse n'a ici qu'un but pédagogique.

Mais, sinon, tu as raison sur la méthode find : la seule fiable

A+