Sélection de plage VBA

Résolu/Fermé
EHA - 29 juil. 2010 à 17:57
 EHA - 29 juil. 2010 à 20:38
Bonjour à tous,

Je suis débutant en VBA et j'ai de la difficulté à lui faire faire ce que je désire. Si quelqu'un peut m'aider avec ce problème, j'avancerais beaucoup dans mon travail.

Je cherche à sélectionner un certain nombre de cases en fonction de la position de la cellule sélectionnée. J'ai une "liste" avec plein de menus déroulants en haut. Je précise puisque je ne sais pas si ça change quelque chose. Je voudrais sélectionner toutes les cases de la liste qui sont au-dessus d'un certain niveau.

Exemple, j'ai des résultats dans les cellules A2 à H30. Je veux pouvoir sélectionner avec ma macro les cellules A2 à H17. J'ai pensé pour ça sélectionner la case H17 et que la plage soit définie à partir de cette case sélectionnée. Donc, si je clique en H13 et que je roule la macro, ce seront plutôt les cases A2 à H13 qui seront sélectionnées.

Ultimement, ma macro servira à copier ces valeurs vers une autre destination. Mais je sais faire cette autre partie.

J'avais pensé faire sélectionner les cellules à partir d'une case à cocher à droite de la ligne, mais ça devient trop long à faire, cocher et décocher toutes les lignes. Si un utilisateur plus avancé a une idée plus simple ou "user friendly", je suis tout ouïe.

Merci d'avance au bon samaritain,

6 réponses

lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
29 juil. 2010 à 20:33
Je pense que j'ai compris, tu met le curseur par exemple sur H13 et tu veux que la plage soit A2:H13
Si c'est ça...
Dim Splage As Range
    Set Splage = Range(Cells(2, 1), Cells(ActiveCell.Row, ActiveCell.Column))

A+
1
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 29/07/2010 à 18:32
Bonjour,
Je n'ai pas bien compris ce que tu veux faire, à moins que la plage soit aléatoire en fonction des circonstances ?
Tu peu faire une sélection avec la commande
    Application.Inputbox
qui te permet de sélectionner une plage.
Si c'est pas ça explique !
A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0
Merci pour ta réponse rapide lermite222!

La plage change dépendant de la cellule sélectionnée lors de l'activation de la macro. Donc, elle n'est pas aléatoire, mais bien variable d'une exécution à l'autre. Je vais tester ta solution, mais pour l'instant elle me donne un message d'erreur.
0
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
29 juil. 2010 à 19:40
    Dim PL As Range
    Set PL = Application.InputBox("Sélectionnez la plage", Type:=8)

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Encore une fois, un gros merci pour ton aide. Ça me donne de bonnes pistes de solution. Il me reste à savoir comment définir la plage sans avoir à la sélectionner.

J'ai probablement été flou lors de mes précédentes interventions. Ce que je voudrais faire c'est que la sélection de la cellule "en bas à droite" de ma plage entraîne la sélection de la plage complète.

Résultat final de la macro: je sélectionne H13. Je roule ma macro. Toutes les cellules de H13 à A2 sont maintenant des valeurs. Cependant, les cellules inférieures restent en formules.
0
Kaboom! Ça marche!

Un énorme merci à toi!
0