Private Const CB_FINDSTRINGEXACT As Long = &H158
Private Const LB_FINDSTRINGEXACT As Long = &H1A2
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
Public Sub AddItem(ByRef voControl As Object, ByRef vsItem As String, Optional ByVal vnIndex As Variant, Optional ByVal vbRemoveDuplicates As Boolean = True)
Dim eMsg As Long
If LenB(vsItem) Then
If TypeOf voControl Is VB.ComboBox Then
eMsg = CB_FINDSTRINGEXACT
ElseIf TypeOf voControl Is VB.ListBox Then
eMsg = LB_FINDSTRINGEXACT
Else
Err.Raise 5
Exit Sub
End If
If vbRemoveDuplicates Then
If SendMessage(voControl.hwnd, eMsg, -1, ByVal vsItem) >= 0 Then
Exit Sub
End If
End If
If IsMissing(vnIndex) Then
voControl.AddItem vsItem
Else
voControl.AddItem vsItem, vnIndex
End If
End If
End Sub
Remarque :
faire par exemple :
AddItem List1, "AA"
AddItem List1, "BB"
AddItem List1, "AA"
AddItem List1, "CC"
AddItem List1, "DD"
AddItem List1, "BB"
AddItem List1, "EE"