Ne pas ajouter 2 fois la même valeur dans une listbox

Bonjour,

J'ai crée un petit formulaire, on choisi la section puis la classe. Après avoir choisi la section (Si 45t = 45t), alors on ajoute la classe (T3 dans mon exemple). Le problème c'est que on peut avoir 2 sections et classe identique pour un code produit différent.

Comment faire pour ne pas ajouter 2 fois une même valeur dans une listbox ? Merci.

Private Sub CommandButton1_Click()
Dim derniere_ligne As Long, i As Long

'supprime les données du formulaire bouton Reset
    ListBox1.Clear
    ComboBox1.Clear
    ComboBox2.Clear

derniere_ligne = Cells(1, 6).End(xlDown).Row
'insère les données dans les box
     For i = 2 To derniere_ligne
        ComboBox1.AddItem Cells(i, 5)
        ComboBox2.AddItem Cells(i, 6)
    Next

End Sub

Private Sub UserForm_Initialize()
Dim derniere_ligne As Long, i As Long
derniere_ligne = Cells(1, 6).End(xlDown).Row 'ligne, colonne

    'insère les données dans les combobox 1 & 2
    For i = 2 To derniere_ligne
        ComboBox1.AddItem Cells(i, 5)
        ComboBox2.AddItem Cells(i, 6)
    Next

 End Sub

Private Sub ListBox1_Click()

'la réponse est affichée en B18
Range("B18") = ListBox1.Value

End Sub

Private Sub ComboBox1_Change()
Dim derniere_ligne As Long, i As Long
derniere_ligne = Cells(1, 1).End(xlDown).Row 'ligne 1, colonne 1

If ComboBox2.Value = "" Then
        ListBox1.Clear

    For i = 2 To derniere_ligne
        If CStr(ComboBox1.Value) = CStr(Cells(i, 2).Value) Then
            ListBox1.AddItem Cells(i, 1).Value
        End If
    Next

        ComboBox2.Clear
    For i = 2 To derniere_ligne
        If CStr(ComboBox1.Value) = CStr(Cells(i, 2).Value) Then
            ComboBox2.AddItem Cells(i, 3).Value
        End If
    Next

Else
        ListBox1.Clear
    For i = 2 To derniere_ligne
        If CStr(ComboBox1.Value) = CStr(Cells(i, 2).Value) And ComboBox2.Value = Cells(i, 3).Value Then
            ListBox1.AddItem Cells(i, 1).Value
        End If
    Next

End If

End Sub
image3
7vba.xlsm (220.30 Ko)

Bonjour Jerem aie,

As-tu remarqué qu'à chacun de tes messages il t'a été demandé un fichier en retour ?

Tu dois comprendre qu'il est difficile d'effectuer des tests sur une image

Tu peux essayer

Dim MonDico
Dim derniere_ligne As Long, i As Long
    Set MonDico = CreateObject("Scripting.dictionary")
    derniere_ligne = Cells(1, 1).End(xlDown).Row
    For i = 2 To derniere_ligne
        If ComboBox1.Text = CStr(Cells(i, 2).Value) Then
            If Not MonDico.Exists(Cells(i, 2) & Cells(i, 3)) Then
                MonDico.Add Cells(i, 2) & Cells(i, 3), ComboBox1.Text
                ComboBox2.AddItem Cells(i, 3).Value
            End If
        End If
    Next

A+

Bonjour le Fil, bonjour le Forum,

je plussoie la remarque de Frangy !

frangy a écrit :

Bonjour Jerem aie,

As-tu remarqué qu'à chacun de tes messages il t'a été demandé un fichier en retour ?

Tu dois comprendre qu'il est difficile d'effectuer des tests sur une image

Tu peux essayer

Dim MonDico
Dim derniere_ligne As Long, i As Long
    Set MonDico = CreateObject("Scripting.dictionary")
    derniere_ligne = Cells(1, 1).End(xlDown).Row
    For i = 2 To derniere_ligne
        If ComboBox1.Text = CStr(Cells(i, 2).Value) Then
            If Not MonDico.Exists(Cells(i, 2) & Cells(i, 3)) Then
                MonDico.Add Cells(i, 2) & Cells(i, 3), ComboBox1.Text
                ComboBox2.AddItem Cells(i, 3).Value
            End If
        End If
    Next

A+

Ah oui désolé, je pensais que cette partie suffisait... Ca ne fonctionne plus comme je le vouslais, j'ai remis l'ensemble du code dans le sujet

ThauThème a écrit :

Bonjour le Fil, bonjour le Forum,

je plussoie la remarque de Frangy !

J'ai corrigé !

Bonjour,

Là, j’avoue que je suis scié.

Alors que j’ai réitéré la demande faite par de multiples intervenants pour que tu joignes un fichier afin de permettre d’effectuer des tests de fonctionnement, tu me réponds que tu as bien compris et tu continues à ne pas joindre de fichier.

Je suis écroulé de rire (tu ne me vois plus parce que j’ai roulé sous le bureau).

Merci pour ce moment de pur bonheur.

A+

P.S : si je trouve une solution, je t’enverrai une photo du résultat.

Désolé je n'avais pas compris c'est bon j'ai ajouté le fichier et finalement j'avais placé ta formule object au mauvais endroit, merci de m'avoir aider !!!!!!

Bonjour le fil, bonjour le forum,

Bon, je n'ai pas autant ri que Frangy mais du coup je t'avais préparé une proposition (en me farcissant toutes tes données à réécrire et l'UserForm a créer)...

En pièce jointe un fichier avec le code commenté :

47jerem-v01.xlsm (26.48 Ko)
ThauThème a écrit :

Bonjour le fil, bonjour le forum,

Bon, je n'ai pas autant ri que Frangy mais du coup je t'avais préparé une proposition (en me farcissant toutes tes données à réécrire et l'UserForm a créer)...

En pièce jointe un fichier avec le code commenté :

Désolé du coup, mais merci je vais réutiliser tes annotations !!

Rechercher des sujets similaires à "pas ajouter fois meme valeur listbox"