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.
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 SubEncore 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 SubRe,
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.