IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-E]récupérer le nom des lignes sélectionnées d'une listbox


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué Avatar de Ania
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Points : 134
    Points
    134
    Par défaut [VBA-E]récupérer le nom des lignes sélectionnées d'une listbox
    Bonjour à tous

    Dans une form, j'affiche le nom de toutes les pièces d'un batiment.

    Et je souhaite récupérer le nom de toutes les pièces sélectionnées
    Quand la propriété MultiSelect est à 2 (multi sélection avec Ctrl et Maj)
    je ne peux utilisé les propriétés Text et Value pour cette tache

    tout ce que je sais, c'est que la propriété Selected(N°ligne) me permet de savoir si une ligne est sélectionnée ou non

  2. #2
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Salut

    tu récupères dans un tableau les indices de lignes qui sont sélectionnées et tu boucle sur ce tableau pour récupérer les noms sélectionnés dans ta liste.

  3. #3
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Tu peux également faire une boucle directe sur les index de ta listbox !
    vois donc ce que fais si tu as au moins 2 articles (index 0 et 1, donc)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Command1_Click()
      MsgBox List1.List(1)
    End Sub

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = 1 to ListBox1.Listcount
         If ListBox1.Selected(i) = True Then
              'tu crées un tableau des index sélectionnés
         endif
    Next
    A+

    Pas testé

  5. #5
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    C'est bon, ousk ! (mais tu lui as tout donné d'un seul coup !)
    faut commencer par 0... pas par 1... et aller jusqu'au compte -1

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Je voulais juste qu'il teste ça pour moi

    Désolé, jemefe, la prochaine fois j'attendrai qu'on en soit à la troisième page

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    J'ajoute que 0 si (quelquechose)Head = true (column ?)

    C'est une question...

  8. #8
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Non : toujours 0 (1er index)

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Merci. Comme je n'ai jamais eu l'occasion d'utiliser le multiselect, je ne savais pas. mais maintenant je sais

  10. #10
    Membre habitué Avatar de Ania
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 155
    Points : 134
    Points
    134
    Par défaut
    Je vous remercie pour vos solutions
    donc au final voila ce que j'ai fait :
    Dans un premier temps je recherche les éléments qui sont Sélectionnés ainsi que leur nombre (combien y'a-t-il d'éléments sélectionnés)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Function RechercheSelection(NomZone() As String, NbElementsSelectionnes As Integer)
      With lbToutesZones
     
        For i = 0 To .ListCount - 1
          If .Selected(i) = True Then
            NbElementsSelectionnes = NbElementsSelectionnes + 1
          End If
        Next i
     
        If NbElementsSelectionnes <> 0 Then
          ReDim NomZone(0 To NbElementsSelectionnes - 1)
          j = 0
          For i = 0 To .ListCount - 1
            If .Selected(i) = True Then
              NomZone(j) = .List(i)
              j = j + 1
            End If
          Next i
        End If
     
      End With
    End Function
    puis dans un second je passe au traitement

    Un très grand merci à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/09/2011, 13h51
  2. Réponses: 10
    Dernier message: 06/05/2010, 20h51
  3. [JList] Récupérer le nom des éléments sélectionnés
    Par dev197 dans le forum Composants
    Réponses: 3
    Dernier message: 14/08/2009, 14h33
  4. [VBA-E] Récupérer les noms des onglets
    Par a.dequidt dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/09/2007, 10h54
  5. [VBA-E] Récupérer le nombre d'élément sélectionné d'une Listbox ?
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/01/2007, 17h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo