Récupérer la position d'une chaîne dans une combobox ou une listbox (et sélectionner cette ligne)


Contenu du snippet

Private Const CB_FINDSTRING As Long = &H14C
Private Const CB_FINDSTRINGEXACT As Long = &H158
Private Const LB_FINDSTRING As Long = &H18F
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
   
Function GetListIndex(ByRef voObj As Object, ByRef vsValue As String, Optional ByVal vbBeginsWith As Boolean = False, Optional vnStart As Long = -1) As Long
Dim eMsg As Long
   If Not voObj Is Nothing Then
       If (TypeOf voObj Is ComboBox) Then
           If vbBeginsWith Then
               eMsg = CB_FINDSTRING
           Else
               eMsg = CB_FINDSTRINGEXACT
           End If
       ElseIf (TypeOf voObj Is ListBox) Then
           If vbBeginsWith Then
               eMsg = LB_FINDSTRING
           Else
               eMsg = LB_FINDSTRINGEXACT
           End If
       Else
           Err.Raise 5
           Exit Function
       End If
   
       GetListIndex = SendMessage(voObj.hwnd, eMsg, vnStart, ByVal vsValue)
   End If
End Function 

Compatibilité : VB6

Disponible dans d'autres langages :

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.