Bonjours à tous, je fais appel à une form dans mon document Excel et je veux
chercher dans une ListBox lorsque l'usager tappera dans un TextBox.
J'ai trouvé partout ce code sur le NET qui semble super bien marcher en VB
pure:
Const LB_FINDSTRING = &H18F
Private Declare Function SendMessage Lib "User32" _
Alias "SendMessageA" _
(ByVal hWnd As Long, _
ByVal wMsg As Integer, _
ByVal wParam As Integer, _
lParam As Any) As Long
Private Sub Form_Load()
List1.Clear
List1.AddItem "Apples"
List1.AddItem "Banana"
List1.AddItem "Bread"
List1.AddItem "Break"
Text1.Text = ""
End Sub
Private Sub Text1_Change()
'---------------->C'EST ICI, LE HWND
List1.ListIndex = SendMessage(List1.hWnd, LB_FINDSTRING, -1, _
ByVal Text1.Text)
End Sub
Mon code VB en arrière de ma feuille Excel ne trouve pas la propriété hWnd
de mon contrôle... Est-ce une référence que j'ai oublié d'ajouter?
Ou y a-t-il une meilleur solution pour chercher dans un listBox?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
docm
Bonjour Dominic Feron.
Je crois que les contrôles dans Excel n'ont pas de hWnd. Il faut donc rechercher manuellement.
Private Sub TextBox3_Change() If TextBox3 <> "" Then For i = 0 To ListBox1.ListCount - 1 If UCase(Mid(ListBox1.List(i), 1, Len(TextBox3.Text))) UCase(TextBox3.Text) Then ListBox1.ListIndex = i 'Sélection de l'item i Exit Sub End If Next End If ListBox1.ListIndex = -1 'Aucun item sélectionné End Sub
Saluts.
"Dominic Feron" wrote in message news:
Bonjours à tous, je fais appel à une form dans mon document Excel et je veux
chercher dans une ListBox lorsque l'usager tappera dans un TextBox.
J'ai trouvé partout ce code sur le NET qui semble super bien marcher en VB pure:
Const LB_FINDSTRING = &H18F Private Declare Function SendMessage Lib "User32" _ Alias "SendMessageA" _ (ByVal hWnd As Long, _ ByVal wMsg As Integer, _ ByVal wParam As Integer, _ lParam As Any) As Long
Private Sub Form_Load() List1.Clear List1.AddItem "Apples" List1.AddItem "Banana" List1.AddItem "Bread" List1.AddItem "Break" Text1.Text = "" End Sub
Private Sub Text1_Change() '---------------->C'EST ICI, LE HWND List1.ListIndex = SendMessage(List1.hWnd, LB_FINDSTRING, -1, _ ByVal Text1.Text) End Sub
Mon code VB en arrière de ma feuille Excel ne trouve pas la propriété hWnd de mon contrôle... Est-ce une référence que j'ai oublié d'ajouter?
Ou y a-t-il une meilleur solution pour chercher dans un listBox?
Merci beaucoup de votre aide!
Bonjour Dominic Feron.
Je crois que les contrôles dans Excel n'ont pas de hWnd.
Il faut donc rechercher manuellement.
Private Sub TextBox3_Change()
If TextBox3 <> "" Then
For i = 0 To ListBox1.ListCount - 1
If UCase(Mid(ListBox1.List(i), 1, Len(TextBox3.Text))) UCase(TextBox3.Text) Then
ListBox1.ListIndex = i 'Sélection de l'item i
Exit Sub
End If
Next
End If
ListBox1.ListIndex = -1 'Aucun item sélectionné
End Sub
Saluts.
"Dominic Feron" <dominic.feron@dessausoprin.com> wrote in message
news:upZdm6WpEHA.3396@tk2msftngp13.phx.gbl...
Bonjours à tous, je fais appel à une form dans mon document Excel et je
veux
chercher dans une ListBox lorsque l'usager tappera dans un TextBox.
J'ai trouvé partout ce code sur le NET qui semble super bien marcher en VB
pure:
Const LB_FINDSTRING = &H18F
Private Declare Function SendMessage Lib "User32" _
Alias "SendMessageA" _
(ByVal hWnd As Long, _
ByVal wMsg As Integer, _
ByVal wParam As Integer, _
lParam As Any) As Long
Private Sub Form_Load()
List1.Clear
List1.AddItem "Apples"
List1.AddItem "Banana"
List1.AddItem "Bread"
List1.AddItem "Break"
Text1.Text = ""
End Sub
Private Sub Text1_Change()
'---------------->C'EST ICI, LE HWND
List1.ListIndex = SendMessage(List1.hWnd, LB_FINDSTRING, -1, _
ByVal Text1.Text)
End Sub
Mon code VB en arrière de ma feuille Excel ne trouve pas la propriété hWnd
de mon contrôle... Est-ce une référence que j'ai oublié d'ajouter?
Ou y a-t-il une meilleur solution pour chercher dans un listBox?
Je crois que les contrôles dans Excel n'ont pas de hWnd. Il faut donc rechercher manuellement.
Private Sub TextBox3_Change() If TextBox3 <> "" Then For i = 0 To ListBox1.ListCount - 1 If UCase(Mid(ListBox1.List(i), 1, Len(TextBox3.Text))) UCase(TextBox3.Text) Then ListBox1.ListIndex = i 'Sélection de l'item i Exit Sub End If Next End If ListBox1.ListIndex = -1 'Aucun item sélectionné End Sub
Saluts.
"Dominic Feron" wrote in message news:
Bonjours à tous, je fais appel à une form dans mon document Excel et je veux
chercher dans une ListBox lorsque l'usager tappera dans un TextBox.
J'ai trouvé partout ce code sur le NET qui semble super bien marcher en VB pure:
Const LB_FINDSTRING = &H18F Private Declare Function SendMessage Lib "User32" _ Alias "SendMessageA" _ (ByVal hWnd As Long, _ ByVal wMsg As Integer, _ ByVal wParam As Integer, _ lParam As Any) As Long
Private Sub Form_Load() List1.Clear List1.AddItem "Apples" List1.AddItem "Banana" List1.AddItem "Bread" List1.AddItem "Break" Text1.Text = "" End Sub
Private Sub Text1_Change() '---------------->C'EST ICI, LE HWND List1.ListIndex = SendMessage(List1.hWnd, LB_FINDSTRING, -1, _ ByVal Text1.Text) End Sub
Mon code VB en arrière de ma feuille Excel ne trouve pas la propriété hWnd de mon contrôle... Est-ce une référence que j'ai oublié d'ajouter?
Ou y a-t-il une meilleur solution pour chercher dans un listBox?
Merci beaucoup de votre aide!
Dominic Feron
Merci l'ami, je vais essayer ceci!
"docm" a écrit dans le message de news:
Bonjour Dominic Feron.
Je crois que les contrôles dans Excel n'ont pas de hWnd. Il faut donc rechercher manuellement.
Private Sub TextBox3_Change() If TextBox3 <> "" Then For i = 0 To ListBox1.ListCount - 1 If UCase(Mid(ListBox1.List(i), 1, Len(TextBox3.Text))) > UCase(TextBox3.Text) Then ListBox1.ListIndex = i 'Sélection de l'item i Exit Sub End If Next End If ListBox1.ListIndex = -1 'Aucun item sélectionné End Sub
Saluts.
"Dominic Feron" wrote in message news:
Bonjours à tous, je fais appel à une form dans mon document Excel et je veux
chercher dans une ListBox lorsque l'usager tappera dans un TextBox.
J'ai trouvé partout ce code sur le NET qui semble super bien marcher en VB
pure:
Const LB_FINDSTRING = &H18F Private Declare Function SendMessage Lib "User32" _ Alias "SendMessageA" _ (ByVal hWnd As Long, _ ByVal wMsg As Integer, _ ByVal wParam As Integer, _ lParam As Any) As Long
Private Sub Form_Load() List1.Clear List1.AddItem "Apples" List1.AddItem "Banana" List1.AddItem "Bread" List1.AddItem "Break" Text1.Text = "" End Sub
Private Sub Text1_Change() '---------------->C'EST ICI, LE HWND List1.ListIndex = SendMessage(List1.hWnd, LB_FINDSTRING, -1, _ ByVal Text1.Text) End Sub
Mon code VB en arrière de ma feuille Excel ne trouve pas la propriété hWnd
de mon contrôle... Est-ce une référence que j'ai oublié d'ajouter?
Ou y a-t-il une meilleur solution pour chercher dans un listBox?
Merci beaucoup de votre aide!
Merci l'ami, je vais essayer ceci!
"docm" <docmarti@spamcolba.net> a écrit dans le message de
news:OxajRJYpEHA.3688@TK2MSFTNGP09.phx.gbl...
Bonjour Dominic Feron.
Je crois que les contrôles dans Excel n'ont pas de hWnd.
Il faut donc rechercher manuellement.
Private Sub TextBox3_Change()
If TextBox3 <> "" Then
For i = 0 To ListBox1.ListCount - 1
If UCase(Mid(ListBox1.List(i), 1, Len(TextBox3.Text))) > UCase(TextBox3.Text) Then
ListBox1.ListIndex = i 'Sélection de l'item i
Exit Sub
End If
Next
End If
ListBox1.ListIndex = -1 'Aucun item sélectionné
End Sub
Saluts.
"Dominic Feron" <dominic.feron@dessausoprin.com> wrote in message
news:upZdm6WpEHA.3396@tk2msftngp13.phx.gbl...
Bonjours à tous, je fais appel à une form dans mon document Excel et je
veux
chercher dans une ListBox lorsque l'usager tappera dans un TextBox.
J'ai trouvé partout ce code sur le NET qui semble super bien marcher en
VB
pure:
Const LB_FINDSTRING = &H18F
Private Declare Function SendMessage Lib "User32" _
Alias "SendMessageA" _
(ByVal hWnd As Long, _
ByVal wMsg As Integer, _
ByVal wParam As Integer, _
lParam As Any) As Long
Private Sub Form_Load()
List1.Clear
List1.AddItem "Apples"
List1.AddItem "Banana"
List1.AddItem "Bread"
List1.AddItem "Break"
Text1.Text = ""
End Sub
Private Sub Text1_Change()
'---------------->C'EST ICI, LE HWND
List1.ListIndex = SendMessage(List1.hWnd, LB_FINDSTRING, -1, _
ByVal Text1.Text)
End Sub
Mon code VB en arrière de ma feuille Excel ne trouve pas la propriété
hWnd
de mon contrôle... Est-ce une référence que j'ai oublié d'ajouter?
Ou y a-t-il une meilleur solution pour chercher dans un listBox?
Je crois que les contrôles dans Excel n'ont pas de hWnd. Il faut donc rechercher manuellement.
Private Sub TextBox3_Change() If TextBox3 <> "" Then For i = 0 To ListBox1.ListCount - 1 If UCase(Mid(ListBox1.List(i), 1, Len(TextBox3.Text))) > UCase(TextBox3.Text) Then ListBox1.ListIndex = i 'Sélection de l'item i Exit Sub End If Next End If ListBox1.ListIndex = -1 'Aucun item sélectionné End Sub
Saluts.
"Dominic Feron" wrote in message news:
Bonjours à tous, je fais appel à une form dans mon document Excel et je veux
chercher dans une ListBox lorsque l'usager tappera dans un TextBox.
J'ai trouvé partout ce code sur le NET qui semble super bien marcher en VB
pure:
Const LB_FINDSTRING = &H18F Private Declare Function SendMessage Lib "User32" _ Alias "SendMessageA" _ (ByVal hWnd As Long, _ ByVal wMsg As Integer, _ ByVal wParam As Integer, _ lParam As Any) As Long
Private Sub Form_Load() List1.Clear List1.AddItem "Apples" List1.AddItem "Banana" List1.AddItem "Bread" List1.AddItem "Break" Text1.Text = "" End Sub
Private Sub Text1_Change() '---------------->C'EST ICI, LE HWND List1.ListIndex = SendMessage(List1.hWnd, LB_FINDSTRING, -1, _ ByVal Text1.Text) End Sub
Mon code VB en arrière de ma feuille Excel ne trouve pas la propriété hWnd
de mon contrôle... Est-ce une référence que j'ai oublié d'ajouter?
Ou y a-t-il une meilleur solution pour chercher dans un listBox?