Bonjour le forum,
J'ai créé un petit fichier de ventes pour mon école et encore merci à ceux qui m'ont aidé. Il fonctionne à merveille (but = publipostage pour étiquettes à coller sur emballage de sandwiches selon les ventes et clients).
L'usage me demande de modifier le userform2 selon le choix de crudités des clients. Avec ou sans crudités est facile et je savais sélectionner les crudités à supprimer. Mais certains me disent "sans crudités mais avec..." et cela complique tout. J'ai donc revu mon formulaire. Et là, ça coince pour une erreur de programmation.
J'ai un souci dans mon userform2 qui doit être facilement identifié pour qui sait rédiger un code (je balbutie toujours et j'apprends de façon empirique): j'ai dupliqué la listbox 3 (sélection de crudités) pour avoir deux listbox dans le même userform (listbox 3 et listbox 8). Chaque listbox a la même plage source (choix de crudités) mais doit renvoyer le résultat de la sélection mutliple de chaque litsbox dans une colonne respective pour chacune ("avec crudités" mais sans le choix sélectionné, ou "sans crudité" mais avec l'ajout du choix sélectionné). Mais lorsque j'active le formulaire, le choix effectué dans la listbox 8 se place au bon endroit (colonne K), par contre le problème se trouve dans le choix du listbox3 qui est renvoyé à la fois sur la colonne J (correct) et sur la colonne K (incorrect). Pourquoi ce choix est-il renvoyé sur 2 colonnes? Je pense que le problème se trouve avec la ligne Dim valeur As String que j'utilise mal dans le cas de deux listbox.
L'idéal aurait été de mettre des conditions (du style si "sans crudités" activé alors sélection possible dans listbox8, et si "avec crudité" est activé, alors choix possible dans listbox3), mais comme je ne suis pas très doué en lignes de codes, je vais au plus simple et ai décidé de dupliquer les listbox.
Quelqu'un peut-il corriger mon code, que je comprenne où est mon erreur? Merci beaucoup. Voici en pj mon fichier allégé de toute donnée personnelle (pour respecter le RGPD) et ci dessous le code. Merci!
With Me.ListBox3
Dim valeur As String
For i = 0 To ListBox3.ListCount - 1
If .Selected(i) = True Then
valeur = valeur & .List(i) & " "
End If
Next i
Cells(ligne, 10).Value = valeur 'affiche en colonne 10 = colonne J la sélection multiple de la listbox3
End With
'et pour le choix multiple de la ListBox8 (merci Rossoneri83): (listbox8 = la sélection des "sans_mais_avec"
With Me.ListBox8
'Dim valeur As String ' si ne dé-selectionne pas ici, le userform ne fonctionne pas
For i = 0 To ListBox8.ListCount - 1
If .Selected(i) = True Then
valeur = valeur & .List(i) & " "
End If
Next i
Cells(ligne, 11).Value = valeur 'affiche en colonne 11 = colonne K la sélection multiple de la listbox8
End With
J'ai créé un petit fichier de ventes pour mon école et encore merci à ceux qui m'ont aidé. Il fonctionne à merveille (but = publipostage pour étiquettes à coller sur emballage de sandwiches selon les ventes et clients).
L'usage me demande de modifier le userform2 selon le choix de crudités des clients. Avec ou sans crudités est facile et je savais sélectionner les crudités à supprimer. Mais certains me disent "sans crudités mais avec..." et cela complique tout. J'ai donc revu mon formulaire. Et là, ça coince pour une erreur de programmation.
J'ai un souci dans mon userform2 qui doit être facilement identifié pour qui sait rédiger un code (je balbutie toujours et j'apprends de façon empirique): j'ai dupliqué la listbox 3 (sélection de crudités) pour avoir deux listbox dans le même userform (listbox 3 et listbox 8). Chaque listbox a la même plage source (choix de crudités) mais doit renvoyer le résultat de la sélection mutliple de chaque litsbox dans une colonne respective pour chacune ("avec crudités" mais sans le choix sélectionné, ou "sans crudité" mais avec l'ajout du choix sélectionné). Mais lorsque j'active le formulaire, le choix effectué dans la listbox 8 se place au bon endroit (colonne K), par contre le problème se trouve dans le choix du listbox3 qui est renvoyé à la fois sur la colonne J (correct) et sur la colonne K (incorrect). Pourquoi ce choix est-il renvoyé sur 2 colonnes? Je pense que le problème se trouve avec la ligne Dim valeur As String que j'utilise mal dans le cas de deux listbox.
L'idéal aurait été de mettre des conditions (du style si "sans crudités" activé alors sélection possible dans listbox8, et si "avec crudité" est activé, alors choix possible dans listbox3), mais comme je ne suis pas très doué en lignes de codes, je vais au plus simple et ai décidé de dupliquer les listbox.
Quelqu'un peut-il corriger mon code, que je comprenne où est mon erreur? Merci beaucoup. Voici en pj mon fichier allégé de toute donnée personnelle (pour respecter le RGPD) et ci dessous le code. Merci!
With Me.ListBox3
Dim valeur As String
For i = 0 To ListBox3.ListCount - 1
If .Selected(i) = True Then
valeur = valeur & .List(i) & " "
End If
Next i
Cells(ligne, 10).Value = valeur 'affiche en colonne 10 = colonne J la sélection multiple de la listbox3
End With
'et pour le choix multiple de la ListBox8 (merci Rossoneri83): (listbox8 = la sélection des "sans_mais_avec"
With Me.ListBox8
'Dim valeur As String ' si ne dé-selectionne pas ici, le userform ne fonctionne pas
For i = 0 To ListBox8.ListCount - 1
If .Selected(i) = True Then
valeur = valeur & .List(i) & " "
End If
Next i
Cells(ligne, 11).Value = valeur 'affiche en colonne 11 = colonne K la sélection multiple de la listbox8
End With