Gérer les doublons d'une Listbox par ajout Textbox

Horusbk

XLDnaute Junior
Bonjour,

J'utilise une textbox pour ajouter des données à une Listbox, voici le code que j'ai créé :
VB:
Private Sub CommandButton1_Click()
'Ajouter à la listboxs
    Me.ListBox1.AddItem TextBox1
    Me.TextBox1 = ""
    Me.TextBox1.SetFocus
End Sub

Toutefois, j'aimerais intégrer un contrôle qui empêcherait l'utilisateur de saisir un doublon dans cette Listbox mais je ne sais pas trop comment faire. Pourriez-vous m'aider sur le bout de code qu'il me manque ?

Merci d'avance pour votre aide ! :)
 
Dernière édition:

Papyty

XLDnaute Nouveau
Bonsoir Horusbk,

Une des possibilités :

VB:
Private Sub CommandButton1_Click()
' Test si vide
    If Me.TextBox1 = "" Then
        Me.TextBox1.SetFocus
        Exit Sub
    End If
'Test si existe
    On Error Resume Next
    Me.ListBox1 = Me.TextBox1
    On Error GoTo 0
    If Me.ListBox1.ListIndex = -1 Then
        Me.ListBox1.AddItem Me.TextBox1
    End If
    Me.ListBox1.ListIndex = -1
    Me.TextBox1 = ""
    Me.TextBox1.SetFocus
End Sub

Un fichier exemple en pièce jointe.

Bonne soirée

Papyty
 

Pièces jointes

  • Doublons d'une Listbox par ajout Textbox.xlsm
    18.9 KB · Affichages: 25

Horusbk

XLDnaute Junior
Bonjour Papyty,

Merci pour ta réponse :)
C'est exactement ce dont j'avais besoin.

Je me permets d'ajouter un complément pour ceux tomberaient sur ce sujet: j'avais un problème après la suppression d'un item de la Listbox (par double-clique sur l'item). Lorsqu'un item était sélectionné dans la listbox il était impossible d'ajouter de nouveau un numéro.

J'ai donc ajouté cette procédure pour désélectionner le contenu de la listbox:
VB:
Private Sub TextBox1_Change()
Dim i As Integer

For i = 0 To Me.ListBox1.ListCount - 1
Me.ListBox1.Selected(i) = False
Next i
End Sub

Je passe le sujet en résolu.
Merci encore ! Horusbk
 

Statistiques des forums

Discussions
311 711
Messages
2 081 792
Membres
101 817
dernier inscrit
carvajal