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 :

problème compilation listbox pour choix multiples [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    électricien
    Inscrit en
    Novembre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : électricien
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2015
    Messages : 6
    Points : 5
    Points
    5
    Par défaut problème compilation listbox pour choix multiples
    Bonjour à tous,

    Je reviens encore vers vous pour un problème de listebox ...

    J'ai actuellement un besoin de faire des choix multiples en cliquant sur une cellule (n'importe laquelle). Grâce à la magie internet, j'ai trouver une solution pour ouvrir une listbox.

    Dans un premier temps j'ai donc créer 1 liste dans l'onglet excel "Listes" avec la fonction excel "gestionnaire de nom" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Liste : =DECALER(Listes!$A$2;;;NBVAL(Listes!$A:$A)-1)

    Le premier code de ma userform fonctionnant lorsque je n'avais qu'une liste était le suivant :

    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
    23
    24
    25
    26
    27
    28
    29
    30
     
    Option Explicit
     
    Private Sub CommandButton1_Click()
    Dim i As Byte
    Dim Choix As String
     
        For i = 0 To ListBox1.ListCount - 1
            If ListBox1.Selected(i) = True Then
                Choix = Choix & ListBox1.List(i) & " / "
            End If
        Next i
     
    ActiveCell = Left(Choix, Len(Choix) - 2)
     
    Unload UserForm1
    End Sub
    Private Sub UserForm_Initialize()
    Dim i As Integer
    ListBox1.Clear
     
    ListBox1.List() = Range("Liste").Value 'Nom défini = Liste
     
        For i = 0 To ListBox1.ListCount - 1
            If ListBox1.Selected(i) = True Then
                ListBox1.Selected(i) = False
            End If
        Next i
     
    End Sub
    Mon besoin maintenant est de pouvoir toujours en cliquant sur une cellule, de pouvoir compiler 2 listebox sur un même userform.
    Pour satisfaire mon besoin, j'ai donc créer 2 listes avec la fonction excel "gestionnaire de nom" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Liste : =DECALER(Listes!$A$2;;;NBVAL(Listes!$A:$A)-1)
    Liste2 : =DECALER(Listes!$C$2;;;NBVAL(Listes!$C:$C)-1)
    Puis modifier la userform en ayant un listbox1 et un listbox2. Ensuite j'ai fais une modification du programme de la sorte :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    Option Explicit
     
    Private Sub CommandButton1_Click()
    Dim i As Byte
    Dim j As Byte
    Dim Choix1 As String
    Dim Choix2 As String
     
        For j = 0 To ListBox1.ListCount - 1
            For i = 0 To ListBox2.ListCount - 1
             If ListBox1.Selected(i) = True Then
                Choix1 = Choix1 & ListBox1.List(i) & " : "
             End If
             If ListBox2.Selected(i) = True Then
                Choix2 = Choix2 & ListBox2.List(i) & " / "
             End If
            Next i
        Next j
     
    ActiveCell = Left(Choix1, Len(Choix1) - 2)
     
    Unload UserForm1
    End Sub
    Private Sub UserForm_Initialize()
    Dim i As Integer
    Dim j As Integer
    ListBox1.Clear
    ListBox2.Clear
     
    ListBox1.List() = Range("Liste2").Value 'Nom défini = Liste
    ListBox2.List() = Range("Liste").Value 'Nom défini = Liste
     
     
        For j = 0 To ListBox1.ListCount - 1
        For i = 0 To ListBox2.ListCount - 1
            If ListBox1.Selected(i) = True Then
                ListBox1.Selected(i) = False
            End If
            If ListBox2.Selected(i) = True Then
                ListBox2.Selected(i) = False
            End If
        Next i
        Next j
     
    End Sub
    L'affichage des deux listes se fait bien dans ma seule userform dans deux encart listbox1 et listbox2 mais je n'arrive pas à les compiler de sorte que dans la cellule excel selectionnée soit affiché "ChoixMultipleListbox1 : ChoixMultipleListbox2"

    Si quelqu'un sait m'aider ...

    Merci d'avance.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    électricien
    Inscrit en
    Novembre 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : électricien
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2015
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    C'est bon !
    J'ai enfin résolu mon problème

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    Option Explicit
     
    Private Sub CommandButton1_Click()
    Dim i As Byte
    Dim j As Byte
    Dim Choix1 As String
    Dim Choix2 As String
     
        For j = 0 To ListBox1.ListCount - 1
             If ListBox1.Selected(j) = True Then
                Choix1 = Choix1 & ListBox1.List(j) & " / "
             End If
        Next j
            For i = 0 To ListBox2.ListCount - 1
             If ListBox2.Selected(i) = True Then
                Choix2 = Choix2 & ListBox2.List(i) & " / "
             End If
            Next i
     
     
    ActiveCell = Left(Choix1, Len(Choix1) - 2) & " : " & Left(Choix2, Len(Choix2) - 2)
     
    Unload UserForm1
    End Sub
    Private Sub UserForm_Initialize()
    Dim i As Integer
    Dim j As Integer
    ListBox1.Clear
    ListBox2.Clear
     
    ListBox1.List() = Range("Liste2").Value 'Nom défini = Liste
    ListBox2.List() = Range("Liste").Value 'Nom défini = Liste
     
     
        For j = 0 To ListBox1.ListCount - 1
        For i = 0 To ListBox2.ListCount - 1
            If ListBox1.Selected(i) = True Then
                ListBox1.Selected(i) = False
            End If
            If ListBox2.Selected(i) = True Then
                ListBox2.Selected(i) = False
            End If
        Next i
        Next j
     
    End Sub
    Merci à ceux qui auraient tenté de m'aider.

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

Discussions similaires

  1. listbox a choix multiple et base de donnee
    Par francis45 dans le forum Excel
    Réponses: 1
    Dernier message: 11/10/2015, 10h09
  2. Sous requête pour choix multiples
    Par koven dans le forum Requêtes
    Réponses: 4
    Dernier message: 04/11/2012, 11h13
  3. intervalle pour choix multiple
    Par paskal++ dans le forum Débuter
    Réponses: 9
    Dernier message: 15/10/2010, 17h38
  4. [BO V5] Problème Liste de valeur choix multiple ou %
    Par bastoonet dans le forum Deski
    Réponses: 3
    Dernier message: 09/10/2007, 11h10
  5. VB6 - problème avec listbox a selection multiple
    Par captainamerica75 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 30/05/2007, 15h04

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