Recherche avancée avec plusieurs TextBox et une ListBox multi-colonnes

Bonjour,

Actuellement en pleine constitution d'un répertoire de données, je bloque sur la fonctionnalité que j'aimerais intégrer au document.
Je ne maitrise que peu les subtilités des macros, c'est pourquoi vos éclaircies me seront précieuses !

- Sur la feuille "AdvancedSearch"] : il s'agirait de pouvoir rechercher intuitivement les lettres contenues dans les colonnes (une barre de recherche pour l'auteur, une pour le titre, une pour les métriques clés et enfin une pour les points essentiels de l'article). Soit en remplissant une seule TextBox, soit plusieurs.

TextBox 1 en lien avec la colonne "Author"

TextBox 2 en lien avec la colonne "Title"

TextBox 3 en lien avec la colonne "Key Metrics"

TextBox 4 en lien avec la colonne "Key Points"

Il serait également intéressant de pouvoir intégrer les différents filtres des autres catégories ("Years, age and sample size search" et "Category Search") dans ce code pour avoir une recherche avancée complète !

Le résultat de ces différents filtres devraient s'afficher dans la ListBox en dessous avec toutes les colonnes du tableau ''dataset" représentées (en y ajoutant les en-tête si possible !).

Enfin, je voudrais pouvoir faire apparaître le nombre de recherches correspondantes dans la cellule ControlPanel!$P$3 pour avoir la visualisation graphique du nombre de résultats.

Je vous remercie grandement pour votre aide dans cette tâche, cela me sera très utile !

Bien cordialement.

Le fichier est trop lourd et je ne peux le joindre ...

Je suis parvenu à alléger le fichier, le voici en pièce jointe.

Merci beaucoup de votre aide !

Bonjour,

Voici un début de solution à votre problème : le traitement de la recherche. J'ai peiné avec votre ListBox alors je vous propose de créer un nouveau sujet pour parfaire la retranscription des données.

D'ailleurs, je pense qu'il est préférable en général de diviser ses demandes afin de ne pas décourager les intervenants.

J'espère en tout cas que ça vous sera utile :

'CODES DANS LA FEUILLE DE RECHERCHE
Private Sub Author_Change()
Call test
End Sub

Private Sub Title_Change()
Call test
End Sub

Private Sub KeyMetrics_Change()
Call test
End Sub

Private Sub KeyPoints_Change()
Call test
End Sub

Sub test()

Dim ctrl As OLEObject, tfiltre()

With Sheets("ArticleDatabase")
    t = .Range("dataset")
    ReDim tfiltre(1 To UBound(t, 2), 1 To UBound(t))
    For i = LBound(t) To UBound(t)
        k = 0: retenir = True
        For Each ctrl In Me.OLEObjects
            verif = False
            If ctrl.progID Like "*TextBox*" Then
                k = k + 1
                col = Application.Match(ctrl.Name, .Range("dataset").Rows(0), 0)
                If CStr(t(i, col)) Like "*" & ctrl.Object.Value & "*" Then verif = True
                retenir = retenir And verif
            End If
        Next ctrl
        If retenir Then
            n = n + 1
            For j = LBound(t, 2) To UBound(t, 2)
                tfiltre(j, n) = t(i, j)
            Next j
        End If
    Next i
End With

With Me.Results
    .Clear
    If n > 0 Then
        ReDim Preserve tfiltre(1 To UBound(t, 2), 1 To n)
        .ColumnCount = UBound(t, 2)
        .List = Application.Transpose(tfiltre)
    End If
End With

End Sub

Cdlt,

Merci beaucoup pour le temps pris sur ma requête ! Cela convient très bien, assurément. Je réadapterai certaines choses dans le document, d'autres idées me sont venues à l'esprit et il n'y aura pas lieu de le complexifier davantage.

J'ai également pris note de votre conseil sur la séparation des demandes pour être le plus précis possible !

Bon dimanche à vous,

Rechercher des sujets similaires à "recherche avancee textbox listbox multi colonnes"