EXCEL VBA : Entrer plage de cellules Inputbox

Résolu
ettihal Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   -
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

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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
8
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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
1
ettihal Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
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
0