Extraction de donnée selectionner

Résolu
SARAH -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour à tous,

J'aimerais avoir votre aide pour une chose à laquelle je n'arrive pas à trouver la solution.
j'ai crée une zone de liste à partir du formulaire d'excel 2003, j'y ai mis des valeurs et j'ai choisis selection multiple.
Ma question etant comment extraire automatiquement les valeurs selectionnées?
J'ai parcouru le forum mais n'y ai trouvé que des réponses faisant appelle à VBA que je maitrise trés peu (voir pas du tout).

Merci d'avance pour votre aide,
Sarah

3 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    2
    1. SARAH
       
      Bonjour,

      merci de votre réponse.

      je n'ai pas réaliser ma liste à partir de VBA est-ce possible dans retirer tout de même les informations?

      Cordialement
      0
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Oui, bien sur.

      Pouvez vous me donner l'adresse des cellules liées? Style : B1:B15
      0
    3. SARAH
       
      J'ai choisi une selection multiple,
      donc j'ai simplement inscrit les données que je voulais voir apparaitre dans ma liste, dans la plage d'entrée.
      Je n'ai pas de cellule lié.
      0
    4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Question subsidiaire : combien avez vous de zones de listes de prévues pour votre feuille?
      0
    5. SARAH
       
      700 liste.
      0
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Les zone de liste sont numérotées elles n'ont pas toutes le même nom.
    Il n'y a que des zones de liste dans ta feuille?
    Pas de forme, ni d'autres contrôles?

    Si ok, voici comment procéder :
    1- Ouvrir ton classeur,
    2- Te placer sur la feuille contenant toutes tes listes,
    3- Taper ALT+F11
    4- Insérer un Module standard : menu Insertion/Module
    5- Copier-coller ce code dans le module :
    Sub MaListe()
    Dim i As Integer, ItemSel As String
    With Worksheets("base")
    For i = 1 To .ListBoxes(Application.Caller).ListCount
    If .ListBoxes(Application.Caller).Selected(i) Then
    If i = 1 Then
    ItemSel = .ListBoxes(Application.Caller).List(i)
    Else
    ItemSel = ItemSel & Chr(10) & .ListBoxes(Application.Caller).List(i)
    End If
    End If
    Next i
    For i = 2 To .Range("A" & Rows.Count).End(xlUp).Row
    If .Rows(i).Top < .ListBoxes(Application.Caller).Top And .Rows(i).Top + .Rows(i).Height > .ListBoxes(Application.Caller).Top Then Exit For
    Next
    .Range("G" & i).Value = ItemSel
    End With
    End Sub

    Sub Macro_Toutes_Listes()
    Dim Shp As Shape, i As Long

    i = 1
    For Each Shp In ActiveSheet.Shapes
    Shp.OnAction = "MaListe"
    Next Shp
    End Sub


    6- fermer la fenêtre visual basic pour retourner sur la feuille,
    7- taper ALT+F8, choisir "Macro_Toutes_Listes et exécuter
    8- tester en cliquant sur une liste au hasard...

    L'action 7 ne sera à réaliser qu'une seule fois. En cas d'ajout de liste, il faudra néanmoins le refaire...

    ton fichier exemple
    1
    1. SARAH
       
      Merci merci merci merci milles fois!!!!
      Je suis ravi d'avoir fait appel à vous!

      La macro fonctionne, j'ai repris, celle que vous avez mis dans le fichier exemple.

      Une derniere question svp, avec cette macro je dois cliquer sur la zone de liste pour que cela me donne les valeurs selectionnées.
      Est-il possible de faire la même opération (extraire des données selectionnées) sur des listes déjà saisies?

      Merci beaucoup "PIJAKU"
      0
  3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,
    De rien.
    700 listes, en effet, il fallait faire quelque chose...

    Pour ta dernière question, voici la macro souhaitée :
    Sub Boucle_Toutes_Listes()
    Dim Shp As Shape, i As Long, ItemSel As String
    With ActiveSheet
    For Each Shp In .Shapes
    For i = 1 To .ListBoxes(Shp.Name).ListCount
    If .ListBoxes(Shp.Name).Selected(i) Then
    If i = 1 Then
    ItemSel = .ListBoxes(Shp.Name).List(i)
    Else
    ItemSel = ItemSel & Chr(10) & .ListBoxes(Shp.Name).List(i)
    End If
    End If
    Next i
    For i = 2 To .Range("A" & Rows.Count).End(xlUp).Row
    If .Rows(i).Top < .ListBoxes(Shp.Name).Top And .Rows(i).Top + .Rows(i).Height > .ListBoxes(Shp.Name).Top Then Exit For
    Next
    .Range("G" & i).Value = ItemSel
    Next
    End With
    End Sub

    1