EXCEL VBA : Entrer plage de cellules Inputbox

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

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  3. ettihal Messages postés 5 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