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 :

récupérer selection listbox [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Par défaut récupérer selection listbox
    bonsoir a tous

    je cherche depuis un moment,
    dans une listbox, avec la possibilité de séléctionné plusieurs ligne ( fmMultiSelectMulti), je voudrais récupérér les lignes sélectionné dans une feuilles vierges

    merci pour votre aide

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Bonsoir,
    http://silkyroad.developpez.com/VBA/...serForm/#LII-G
    Il y a un exemple pour boucler sur les données selectionné tu as juste a l'adapter pour le mettre dans un onglet au lieu d'une messagebox

  3. #3
    Membre éclairé Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Par défaut
    merci

    le terme a comprendre est boucler

    j'ai donc pris ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub CommandButton1_Click()
        Dim i As Integer
        'Les index des Listbox commencent par zéro
        For i = 0 To ListBox1.ListCount - 1
            Debug.Print ListBox1.List(i)
        Next i
    End Sub
    mais après je ne vois pas ce que je dois faire
    comment transférer ma sélection dans la feuille 2 depuis la cellule a1

  4. #4
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonsoir bosk1000 l' ami Krovax le forum une approche de solution
    dans ma listobox1 3 colonnes a adapter!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub CommandButton1_Click()
     Dim element As Boolean, nb As Byte, i As Integer
      element = False
     nb = ListBox1.ListCount
     For i = 0 To nb - 1
    If ListBox1.Selected(i) = True Then
     element = True
     With Sheets(2)
    .Range("A65536").End(xlUp)(2) = ListBox1.List(i, 0)
     .Range("b65536").End(xlUp)(2) = ListBox1.List(i, 1)
     .Range("c65536").End(xlUp)(2) = ListBox1.List(i, 2)
     End With: End If: Next: Beep
    If element = False Then MsgBox "vous n'avez rien selectionné"
     End Sub

  5. #5
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 133
    Par défaut la bonne méthode
    Pour une listbox multiselection


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        Dim i As Byte
        Dim iLig as Integer
        Dim Xls  as  Worksheet
        iLig=2
        set Xls = ThisWorkBook("le nom de la feuille")
        'boucle sur les éléments de la listbox
        For i = 0 To ListBox1.ListCount - 1
            ' on verifie si la ligne est selectionnée 
            If ListBox1.Selected(i) = True Then 
                    Xls.Cells(iLig,2)= ListBox1.List(i)
                    iLig=iLig+1
            end if
        Next i
    Il suffira d 'adapter ce code sur la feuille le nom de feuille la ligne de départ à insérer et la colonne à remplir .......


    Bonne continuation

  6. #6
    Membre éclairé Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Par défaut
    merci a vous tous

    Lynx92260, je n'ai pas réussi car "lLig" me ressort comme une variable non définie, et quelle terme dois-je utiliser pour sélectionner la colonne
    exemple : Columns("A:A")

    laetitia, j'ai réussi avec ton code mon test, mais j'ai 1 bémol

    - les éléments se mette à partir de la 2eme ligne, je voulais la faire a partir de la 1er, j'ai changé le 2 en 1 de cette ligne de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    .Range("A65536").End(xlUp)(2) = ListBox1.List(i, 0)
    mais ça ne la pas fait

  7. #7
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 133
    Par défaut correction
    voir correction dans le code de mon dernier message .

    La colonne A est 1 donc Cell(iLig,1)=......

    C 'est bon la ?

  8. #8
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    re essai comme cela

    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
    Private Sub CommandButton1_Click()
     Dim element As Boolean, nb As Byte, i As Integer, z As Byte
      element = False
     nb = ListBox1.ListCount
     For i = 0 To nb - 1
    If ListBox1.Selected(i) = True Then
     element = True
     If Sheets("feuil2").[a1] <> "" Then z = 2 Else z = 1
     With Sheets("feuil2") 'nom de ta feuille
    .Range("A65536").End(xlUp)(z) = ListBox1.List(i, 0)
     .Range("b65536").End(xlUp)(z) = ListBox1.List(i, 1)
     .Range("c65536").End(xlUp)(z) = ListBox1.List(i, 2)
     End With: End If: Next: Beep
    If element = False Then MsgBox "vous n'avez rien selectionné"
     End Sub

  9. #9
    Membre éclairé Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Par défaut
    laetitia, je viens de tester ton code, c'est bon
    merci

    Lynx92260, j'ai réussi a adapté ton code

    merci a vous deux


    laetitia, s'il te plait, peux tu m'expliquer la difference entre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    - ListBox1.ListCount
    - ListBox1.Selected(i)
    - ListBox1.List(i, 0)
    et aussi à quoi sert

  10. #10
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    re le beep c'est seulement pour faire un peu de bruit quand tu as clique sur le bouton tu es sur que l operation a bien éte faite. on peut mettre une message aussi.

    Renvoie le nombre d'entrées de liste d'un contrôle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ListBox1.Selected(i) = True Then
    quand tu boucle sur sur ta liste prend en consideration tous les élements selectionner (true)

    selectionne ta premiere colonne tu as remarque que dans une listbox la premiere colonne demarre 0 et non 1

    si tu as dix colonne tu selectionne la derniere =9 et non 10 ect...

    ton code on aurait pus le simpliflier si tu as qu'une colonne est tu veus demarrer sur la cell a1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Explicit
    Private Sub CommandButton1_Click()
    Dim i As Integer, z As Byte 'variables
    For i = 0 To ListBox1.ListCount - 1 ' boucle sur les elements de la liste
    If ListBox1.Selected(i) = True Then 'si selection
    If Sheets("feuil2").[a1] <> "" Then z = 2 Else z = 1 ' tiens compte pour demarrer en cell a1
    Sheets("feuil2").Range("A65536").End(xlUp)(z) = ListBox1.List(i) 'selection de la colonne
    End If: Next
    End Sub

  11. #11
    Membre éclairé Avatar de bosk1000
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    706
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 706
    Par défaut
    c'est limpide

    avec tes codes je suis toujours comme ça pour toi

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

Discussions similaires

  1. récupérer valeur listbox selection multiple
    Par titou624 dans le forum C#
    Réponses: 9
    Dernier message: 18/05/2010, 09h09
  2. Impossible récupérer select multiple
    Par libuma dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 16/10/2009, 11h42
  3. Selection ListBox ?
    Par Le Mad dans le forum VB.NET
    Réponses: 2
    Dernier message: 15/06/2009, 09h18
  4. appel TextBox sur selection listBox
    Par jo50160 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/02/2009, 18h24
  5. Récupérer valeurs listbox choix multiple
    Par biquet52 dans le forum IHM
    Réponses: 3
    Dernier message: 11/09/2008, 09h07

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