Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…