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 :
Appel :
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
Sauf que VBA ne connais pas hwnd et je n'arrive de toute facon pas à bien parametrer la recherche en question .
Code : Sélectionner tout - Visualiser dans une fenêtre à part result = SearchListBox(Listbox1, TextBox1)
Pouriez-vous m'aider svp ?
Une image pour clarifier
Cordialement.
Partager