Bonjour ,

J'ai une listbox qui est remplis grace a des données excels . La listbox contient plusieurs colones . J'ai ajouter une textbox1 et une bouton pour lancer une recherche .

Ce que j'aimerais : lorsque je clique sur le bouton , VBA recherche le TextBox1 dans la ListBox1 pour m'afficher la ligne qui contient , dans la premiere colone uniquement , le TextBox1 ou une partie de celui-ci . Lorsque je reclique sur le bouton , ca cherche le suivant .

J'ai trouvé ca :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _ 
        ByVal hwnd As Long, ByVal wMsg As Long, _ 
        ByVal wParam As Long, lParam As Any) As Long 
 
Private Const LB_FINDSTRINGEXACT As Long = &H1A2 
Private Const LB_FINDSTRING As Long = &H18F 
Private Const LB_ERR As Long = -1 
' 
' Entrées : 
'  LstBox        : La ListBox dans laquelle on fait la recherche 
'  searchPattern : La chaine de caractère recherchée 
'  startIndex    : (optionnel) Index de départ de la recherche 
'  exactMatch    : (optionnel) Si True,  la fonction recherche un item exactement égal à searchPattern 
'                              Si False, la fonction recherche le premier item commençant par searchPattern 
' 
' Sorties : 
'  retourne l'index dans la liste de la première occurrence de l'élément recherché 
'  si rien n'est trouvé, la fonction retouren LB_ERR (-1) 
' 
Private Function SearchListBox(lstBox As ListBox, ByVal searchPattern As String, _ 
                               Optional ByVal startIndex As Long = -1, _ 
                               Optional ByVal exactMatch As Boolean = False) As Long 
    Dim searchType As Long 
 
    If exactMatch Then 
        searchType = LB_FINDSTRINGEXACT 
    Else 
        searchType = LB_FINDSTRING 
    End If 
 
    SearchListBox = SendMessage(lstBox.hwnd, searchType, startIndex, ByVal searchPattern) 
 
End Function
Appel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
result = SearchListBox(Listbox1, TextBox1)
Sauf que VBA ne connais pas hwnd et je n'arrive de toute facon pas à bien parametrer la recherche en question .

Pouriez-vous m'aider svp ?

Une image pour clarifier

Cordialement.