EXCEL VBA : Entrer plage de cellules Inputbox [Résolu/Fermé]

Signaler
Messages postés
6
Date d'inscription
mercredi 23 mai 2012
Statut
Membre
Dernière intervention
30 mai 2012
-
Messages postés
24022
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2021
-
Bonjour,

Je viens souvent sur le site mais c'est mon premier message ^^

Voilà : je souhaite créer une Inputbox (ou quelque chose dans le genre) dans laquelle je veux renseigner une cellule ou plusieurs cellules pour pouvoir faire des choses avec ensuite.

Par exemple :
Question de l'Inputbox : "Indiquez les cellules que vous souhaitez sélectionnez"
Réponse attendue : "A1" ou "A2:F8" etc.

En fait je ne sais pas quel type de variables je dois utiliser.

Merci d'avance et bonne journée

Ettihal

3 réponses

Messages postés
24022
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2021
6 743
Bonjour,

Le mieux est d'utiliser l'inputbox (type 8) de l'application et non la méthode inputbox.
Ca permet à l'utilisateur d'aller choisir ses plages à la souris :
Dim ref As Range 
Set ref = Application.InputBox(prompt:="Sélectionner les cellules sur la feuille", Type:=8) 
MsgBox (ref.Address) 

Autre avantages :
- pas contrôle de saisie à faire, les références seront obligatoirement valides
- sélection multiple autorisée

eric
7
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
24022
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2021
6 743
je veux mettre la sélection 1 dans la colonne A, la deuxième dans la colonne B etc..

exemple :
Dim nb As Long, i As Long, s As String
nb = 3
For i = 1 To nb
    Dim ref As Range
    Set ref = Application.InputBox(prompt:="Sélectionner les cellules contenant la " & i & "ème série de mesures", Type:=8)
    ' nettoyage colonne
    Worksheets("Feuil2").Columns(i).ClearContents
    ' coller valeurs
    Worksheets("Feuil2").Cells(1, i).Resize(ref.Rows.Count, 1) = ref.Value
Next i


Mais s'il n'y a pas 50 plages à sélectionner tu peux aussi faire une sélection multiple (appuyer sur ctrl pour faire les sélections supplémentaires) et tu obtiendras une liste de plages comme ça A$3:$A$7;$B$6:$B$10;$C$2:$C$8;$D$9:$D$12 dans la refbox à traiter individuellement ensuite avec Areas

eric
Messages postés
6
Date d'inscription
mercredi 23 mai 2012
Statut
Membre
Dernière intervention
30 mai 2012

Re

Merci pour ta réponse eriiic.

Excusez-moi d'abuser ainsi mais j'ai un autre problème dont je ne trouve pas la solution malgré mes recherches :'(

En fait, suite au message précédent, j'ai à peu près :

For x = 1 To Nb
       Dim ref As Range
       Set ref = Application.InputBox(prompt:="Sélectionner les cellules contenant la " & x & "ème série de mesures", Type:=8)


et là je veux copier coller cette sélection (supposée de la forme 1colonne et nlignes) dans une autre feuille de calcul et SURTOUT dans une colonne qui dépend de x.
Par exemple je veux mettre la sélection 1 dans la colonne A, la deuxième dans la colonne B etc..
La suite :

 Range("ref").Select
       Selection.Copy
       Sheets("Séries de mesures").Select
       ??????.Select
       ActiveSheet.Paste
Next x


En gros je sais pas quoi mettre à la place de "??????" (dépendant de x)
Aussi est-ce que le "Range("ref").Select" est correct ? o.ô


Merci de m'aider ^^'

Ettihal