XL 2016 [VBA] Afficher le contenu d'une Textbox (userform) et d'une Listbox (userform) dans une seule et même cellule d'un tableau

elx

XLDnaute Nouveau
Bonjour à tous,

N'ayant pas trouver de réponse satisfaisante dans d'autres discussion sur le sujet je me permet de créer celle ci.

Je créer un formulaire (dont les données des list/combobox sont renseigner grâce à rowsource) afin de remplir "automatiquement" un tableau en fonction des données rentrer dans le formulaire.

Je rencontre une difficultés concernant l'affichage de certaines données choisie dans le formulaire au sein de mon tableau.
Je laisse la possibilités à l'utilisateur de choisir plusieurs lignes dans les listbox (ca s'affiche dans le tableau pas de problèmes), et surtout je laisse la possibilité de compléter les lignes de la listbox grâce à une textbox. SAUF que le contenue de ma textbox ne s'affiche pas (conflit avec la listbox je suppose?) mais celui de la listbox oui ; j'aimerais donc pouvoir afficher les choix de la listbox + l'éventuelle contenue de la textbox et cela dans une seule et même cellule de mon tableau. Ou pouvoir rajouter une ligne directement dans la listbox comme cela pourrait se faire avec une comboxbox (propriété>source> fmStyleDropDownCombo) ?

Mon niveau en VBA est basique (comme vous le verrez sur mes lignes de code) mais je me débrouille et comprend "assez" vite, je prend tous coups de mains ou diées !

En vous remerciant.

Erwan.
 

Pièces jointes

  • BETA V2.xlsm
    64.3 KB · Affichages: 24
Solution
Salut,

Voici une réponse à reproduire pour tous les listbox et textbox concernés.

Pour compléter la colonne E, à la place de cette ligne :
VB:
Sheets("feuil1").Range("e" & ligne) = ListBox1.List(ListBox1.ListIndex)
je mettrais ceci :
Code:
    a = ""
    b = 0
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) = True Then
            b = b + 1
            If b > 1 Then
                a = a & Chr(10) & ListBox1.List(i)
            Else
                a = ListBox1.List(i)
            End If
        End If
    Next i
    a = a & Chr(10) & TextBox14
    Sheets("feuil1").Range("e" & ligne) = a

Nairolf

XLDnaute Accro
Salut,

Voici une réponse à reproduire pour tous les listbox et textbox concernés.

Pour compléter la colonne E, à la place de cette ligne :
VB:
Sheets("feuil1").Range("e" & ligne) = ListBox1.List(ListBox1.ListIndex)
je mettrais ceci :
Code:
    a = ""
    b = 0
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) = True Then
            b = b + 1
            If b > 1 Then
                a = a & Chr(10) & ListBox1.List(i)
            Else
                a = ListBox1.List(i)
            End If
        End If
    Next i
    a = a & Chr(10) & TextBox14
    Sheets("feuil1").Range("e" & ligne) = a
 

Discussions similaires

Haut Bas