EXCEL VBA : Entrer plage de cellules Inputbox

Résolu
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. Contributeur
    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
    1. Contributeur
      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
      1. 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