XL 2010 Valider Modifier sélection Listbox

Appo1985

XLDnaute Occasionnel
Bonsoir à tous.
Je voudrais de l’aide.
Je voudrais compléter mon tableau qui est déjà rempli au niveau de la dernière colonne par les choix sur le Listbox. Chaque ligne peut comporter 1 ou plusieurs choix. Et séparer les choix par « ; » si c’est plusieurs choix.
J’aimerais pouvoir afficher les choix si je saisi le matricule afin de les modifier.
Ci-joint le fichier :

Merci par avance
 

Pièces jointes

  • Valider selection Listbox.xlsm
    25.3 KB · Affichages: 5
Solution
Bonsoir à tous,

Dans le code de l'UserForm :
VB:
Private Sub CommandButton1_Click()
Dim sep$, i As Variant, j&, x$
sep = " ; "
i = Application.Match(Val(ComboBox1), [Tableau1].Columns(1), 0)
If IsError(i) Then Exit Sub
With ListBox1
    For j = 0 To ListBox1.ListCount - 1
        If .Selected(j) Then x = x & sep & .List(j, 0)
    Next
End With
[Tableau1].Cells(i, 17) = Mid(x, Len(sep) + 1)
Unload Me
End Sub
J'ai testé la macro de laurent950 => bug sur la 1ère boucle.

A+

job75

XLDnaute Barbatruc
Bonsoir à tous,

Dans le code de l'UserForm :
VB:
Private Sub CommandButton1_Click()
Dim sep$, i As Variant, j&, x$
sep = " ; "
i = Application.Match(Val(ComboBox1), [Tableau1].Columns(1), 0)
If IsError(i) Then Exit Sub
With ListBox1
    For j = 0 To ListBox1.ListCount - 1
        If .Selected(j) Then x = x & sep & .List(j, 0)
    Next
End With
[Tableau1].Cells(i, 17) = Mid(x, Len(sep) + 1)
Unload Me
End Sub
J'ai testé la macro de laurent950 => bug sur la 1ère boucle.

A+
 

Pièces jointes

  • Valider selection Listbox.xlsm
    28.7 KB · Affichages: 4

Appo1985

XLDnaute Occasionnel
Bonsoir @Appo1985,

J'ai rapidement fait ce petit bout de code assez efficace.

Pour info, dans votre fichier Excel, il y a un doublon pour un matricule (365). Celui-ci doit être unique.

Pour le test, j'ai changé l'un des deux numéros en 366.

Code : CommandButton1_Click
VB:
Private Sub CommandButton1_Click()
   Dim Col As Collection
   Set Col = New Collection
   For i = 2 To Cells(1048576, 1).End(xlUp).Row: Col.Add Item:=Cells(i, 1), Key:=CStr(Cells(i, 1).Value): Next i
   ' Resultat
     Dim selectedItems As String
     ' Parcourir tous les éléments de la ListBox
        For i = 0 To ListBox1.ListCount - 1
            ' Vérifier si l'élément est sélectionné
            If ListBox1.Selected(i) Then
                ' Ajouter l'élément sélectionné à la variable, séparé par un ";"
                    If selectedItems = "" Then
                        selectedItems = ListBox1.List(i)
                Else
                    selectedItems = selectedItems & "; " & ListBox1.List(i)
                End If
            End If
        Next i
    ' Copie le Resultat
     Dim Lig As Range
     Set Lig = Col.Item(Me.ComboBox1.Text)
     Cells(Lig.Row, 17) = selectedItems
End Sub
Bonsoir
Merci beaucoup
 

Appo1985

XLDnaute Occasionnel
Bonsoir à tous,

Dans le code de l'UserForm :
VB:
Private Sub CommandButton1_Click()
Dim sep$, i As Variant, j&, x$
sep = " ; "
i = Application.Match(Val(ComboBox1), [Tableau1].Columns(1), 0)
If IsError(i) Then Exit Sub
With ListBox1
    For j = 0 To ListBox1.ListCount - 1
        If .Selected(j) Then x = x & sep & .List(j, 0)
    Next
End With
[Tableau1].Cells(i, 17) = Mid(x, Len(sep) + 1)
Unload Me
End Sub
J'ai testé la macro de laurent950 => bug sur la 1ère boucle.

A+
Bonsoir
Merci beaucoup.
Pour la validation, c'est impeccable.
Peut-on à travers la valeur de Combobox1, garder la sélection de sorte que l'on puisse ajouter d'autres critères à ce qui avait été validé ?
Merci par avance
 

Appo1985

XLDnaute Occasionnel
Ok.
Mais je pense que je me suis pas fait comprendre.
Par exemple quand je choisis le premier matricule et que je l'affecte un critère, c'est désormais le seul critère qui est valide alors que je voudrais faire un ajout de critères.
Je voudrais que s'il ya déjà des critères pour ce matricule qu'au niveau du Listbox que ça soit sélectionner de telle sorte que je puisse ajouter ou retirer.
 

Appo1985

XLDnaute Occasionnel
Bonsoir
Pour le doublon cest une erreur de saisie de ma p
Bonsoir @job75,

Merci pour votre réactivité, cependant, je pense que vous n'avez pas pris le temps de lire mon Post #2. Il est bien de chercher à optimiser le code, mais il est également important de bien comprendre son fonctionnement.

En ce qui concerne le problème du matricule 365, c’est effectivement un doublon dans vos documents Excel. C’est donc une situation normale et il faut bien en tenir compte.

Cependant, votre code ne rencontre pas de bug, mais si vous choisissez le matricule 365, seule une ligne sera remplie, à cause de ce doublon.

Personnellement, je n'ai pas jugé nécessaire d'ajouter une gestion d'erreur pour les doublons, car un matricule devrait rester un numéro unique.
A
Bonsoir @Appo1985

choisissons le matricule 365 (il y en a deux) dans votre fichier Excel en Poste #1
Ecrivez à la main les deux résultats attendus pour ce Matricule
ont commence par cela.
onsoir
Pour le doublon c'est une erreur de saisie de ma part. En réalité il ne peut pas avoir 2 matricules identiques
 

Appo1985

XLDnaute Occasionnel
Bonjour.
Oui, je vois bien que je n’arrive pas à expliquer clairement ce que je désire faire. Pour cela voici ci-joint un fichier exemple que j’ai téléchargé sur le site boisgontierj.free.fr pour que vous puissier voir le comportement du listbox « Loisirs ».
Dans ce fichier quand le nom est saisi, les anciens choix de sélectionnés dans le listbox.
 

Pièces jointes

  • FormGeneralBase.xls
    96 KB · Affichages: 2

Discussions similaires

Réponses
8
Affichages
381
Réponses
18
Affichages
1 K
Réponses
7
Affichages
683

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
315 087
Messages
2 116 083
Membres
112 654
dernier inscrit
SADIKA