IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-E]Rechercher (textbox) dans une listbox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 52
    Par défaut [VBA-E]Rechercher (textbox) dans une listbox
    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.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Ton code ne serait-il pas du copier coller d'un autre code.

    La fonction SendMessage est une Api et hwnd est le handle d'une fenêtre.

    Ce bout de code te donnera la position dans la liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        Dim i As Integer
        Dim intPosition As Integer
        For i = 0 To Me.ListBox1.ListCount - 1
            If Me.ListBox1.Column(0, i) = Me.matextbox.Value Then
                intPosition = i
            End If
        Next i
        MsgBox i
    A toi de l'adapter pour récupérer d'autre données de ta liste.
    A mettre sur le l'évènement Click de ton bouton.
    Regarde dans l'aide VBA toutes les propriétés et méthodes des listbox.

    La touche est indispensable

    Starec

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 52
    Par défaut
    Oui c'est un copier/coller mais j'ai dit que je l'avais trouver sur internet

    Ton code m'indique simplement la position de la derniere ligne remplie de la listbox :/ et ce peu importe la valeur de ma textbox.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Je t'ai dit que c'est à adapter.

    1 - As-tu regardé l'aide pour savoir comment fonctionnait les éléments d'une listbox
    2 - le 0 dans column correspond à la première colonne, si ta recherche est dans la deuxième mettre 1, etc.. (la numérotation des colonnes commencant à 0).

    Starec

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 52
    Par défaut
    Hum.. je doit être trop mauvais mais j'y arrive pas vraiment la :/

  6. #6
    Invité
    Invité(e)
    Par défaut
    Re

    As-tu regardé l'aide et les exemples de l'aide pour les instructions utilisés comme : column ?

    Je t'ai dis de mettre à la place du 0 la colonne que tu veux tester, si c'est la première c'est 0, si c'est la deuxième c'est 1.

    As-tu changé les nom dans le code que je t'ai donné avec tes noms à toi ?

    Montre le code que tu as écris.

    Starec

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. recherche mot dans une listbox
    Par devhafid dans le forum C#
    Réponses: 10
    Dernier message: 18/02/2016, 11h35
  2. [XL-2010] VBA Pointeur - Recherche Données dans une plage
    Par Coxtox dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/04/2015, 09h37
  3. [XL-2013] Recherche dans une listbox à partir d'un textbox ou optionbutton
    Par keithingel dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 20/11/2014, 15h36
  4. [vba excel] Recherche valeur d'une textbox dans une feuille
    Par vanessaferraz dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/08/2006, 10h55
  5. recherche dans une listbox
    Par micknic dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 23/02/2005, 21h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo