Doublon et listbox

FrostByte Messages postés 138 Date d'inscription mercredi 4 avril 2001 Statut Membre Dernière intervention 28 janvier 2006 - 10 mai 2003 à 22:43
cs_Chewba Messages postés 90 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 10 septembre 2006 - 22 août 2003 à 23:32
Bonjour tout le monde

Serait-il possible que quelqu'un m'aide, j'ai un petit probleme, lors d'ajout d'item dans une listbox j'aurais besoin d'un controle pour éviter de saisir deux fois le même item. une source est déjà presente sur le forum et hélas elle ne fonctionne pas.

Amicalement FrostByte

3 réponses

stevebelgium Messages postés 180 Date d'inscription lundi 17 mars 2003 Statut Membre Dernière intervention 7 juin 2003 1
10 mai 2003 à 22:52
et comme ca ? trop simple ?

tu a besoin 1 listbox :

Private Sub Command1_Click()

add_item Me.List1, "test"
add_item Me.List1, "a"
add_item Me.List1, "test"

End Sub
Sub add_item(list_box As ListBox, the_item As String)

Dim is_in_list As Boolean
Dim x As Integer

is_in_list = False

For x = 0 To list_box.ListCount - 1
If list_box.List(x) = the_item Then
is_in_list = True
Exit For
End If
Next x

If is_in_list = False Then
list_box.AddItem the_item
Else
MsgBox the_item & " : already in " & list_box.Name
End If

End Sub
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
10 mai 2003 à 23:13
ou encore les API........

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Private Const LB_FINDSTRINGEXACT = &H1A2

Private Sub Form_Load()
    AjouteItem List1, "test"
    AjouteItem List1, "a"
    AjouteItem List1, "test"
End Sub

Public Sub AjouteItem(ListBox As ListBox, Item As String, Optional EmpecheDoublons As Boolean = True)
    Dim Id
    Id = GetIndex(ListBox, Item)
    If Not EmpecheDoublons Or Not (EmpecheDoublons And Id <> -1) Then
        ListBox.AddItem (Item)
    End If
End Sub

Function GetIndex(ListBox As ListBox, Item As String) As Long
    'renvoie l'inddice de l'item dans le listbox. -1 si non trouvé.
    ' le parametre -1 donne l'indice de depart , utilisé dans la recherche.
    GetIndex = SendMessage(ListBox.hwnd, LB_FINDSTRINGEXACT, -1, Item)
End Function


-----------------------------------------------------------------------
By Renfield

thomas_reynald@msn.com

Aucune touche n'a été bléssée lors de la saisie de ce texte..........
0
cs_Chewba Messages postés 90 Date d'inscription jeudi 16 mai 2002 Statut Membre Dernière intervention 10 septembre 2006
22 août 2003 à 23:32
Bon petit bout de code, très utile
Merci
0
Rejoignez-nous