Userform, listbox à choix multiples, insertion dans une cellule

Bonjour à tous,

j'ai continué (après l'aide zebulon pour le planning) d'étoffer mon fichier excel et je coince sur sans doute une bêtise de ma part.

Le userform1 permet d'ajouter des éléments dans un tableau (Tabstock) sur la feuille stock.

Tout fonctionne sauf l'ajout de ma sélection multiple de la listbox du formulaire.

Cette listbox récupère les noms de chantier (L_Chantier). Il ne se passe rien.

J'espère avoir été suffisamment claire.

Ci-joint le fichier.

48testvba.xlsm (93.25 Ko)

Bonjour,

d'après ce que je comprend:

Private Sub CommandButton1_Click()
Dim dlt As Long, i As Integer, Compteur As Integer

'*** vérification selection listbox
For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) Then Compteur = Compteur + 1
Next i
If Compteur = 0 Then
    MsgBox "Sélectionner au moins un chantier"
    Exit Sub
End If
'*** fin vérification selection listbox

'If Sheets("stock").Range("A2") = "" Then  ???
'Sheets("stock").Range("A2") = TextBox1

With Sheets("stock")
For i = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(i) Then
        .ListObjects("Tableau2").ListRows.Add
        dlt = .ListObjects("Tableau2").ListRows.Count + 1
        .Range("a" & dlt) = ComboBox1
        .Range("b" & dlt) = ComboBox2
        .Range("c" & dlt) = ComboBox3
        .Range("d" & dlt) = TextBox1
        .Range("e" & dlt) = ComboBox4
        .Range("f" & dlt) = ComboBox5
        .Range("g" & dlt) = ComboBox6
        .Range("h" & dlt) = ComboBox7
        .Range("i" & dlt) = ListBox1.List(i)
    End If
Next
End With
Unload UserForm1

End Sub

Encore peu familier des tableaux ListObject, il y a peut-être un code plus spécifique...

A+

A+

Bonjour,

merci de ta réponse. Je n'avais pas préciser que cette sélection dans la listbox (qu'elle soit unique ou multiple) doit apparaitre dans la même cellule.

J'en suis confuse. Excusez-moi.

L'userform1 permet d'ajouter un produit (une ligne) dans mon Tabstock. Dans ce tableau il y a une colonne pour y mettre les chantiers.

Donc quand je créer une ligne, j'aimerais pouvoir ajouter dans la cellule chantier un ou plusieurs choix de cette listbox.

oh purée j'essaie d'être limpide mais c'est pas gagné !

Ton code fonctionne (évidemment !) mais cela me rajoute deux lignes si je sélectionne les 2 chantiers test.

Encore merci.

à tester

Private Sub CommandButton1_Click()
Dim dlt As Long, i As Integer, Compteur As Integer

'*** vérification selection listbox
For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) Then Compteur = Compteur + 1
Next i
If Compteur = 0 Then
    MsgBox "Sélectionner au moins un chantier"
    Exit Sub
End If
Compteur = 0
'*** fin vérification selection listbox

'If Sheets("stock").Range("A2") = "" Then  ???
'Sheets("stock").Range("A2") = TextBox1

With Sheets("stock")
        .ListObjects("Tableau2").ListRows.Add
        dlt = .ListObjects("Tableau2").ListRows.Count + 1
        .Range("a" & dlt) = ComboBox1
        .Range("b" & dlt) = ComboBox2
        .Range("c" & dlt) = ComboBox3
        .Range("d" & dlt) = TextBox1
        .Range("e" & dlt) = ComboBox4
        .Range("f" & dlt) = ComboBox5
        .Range("g" & dlt) = ComboBox6
        .Range("h" & dlt) = ComboBox7
        For i = 0 To ListBox1.ListCount - 1
            If ListBox1.Selected(i) Then
                Compteur = Compteur + 1
                If Compteur = 1 Then
                    .Range("i" & dlt) = ListBox1.List(i)
                Else
                    .Range("i" & dlt) = .Range("i" & dlt) & "-" & ListBox1.List(i)
                End If
            End If
        Next
End With
Unload UserForm1

End Sub

Re,

et bien merci beaucoup ça marche super !

Maintenant je vais décortiquer pour comprendre au cas où j'en ai besoin une prochaine fois !

Merci

Mline.

Rechercher des sujets similaires à "userform listbox choix multiples insertion"