Système de recherche avec liste multi-critères / critères pas assez flexibles

  • Initiateur de la discussion Initiateur de la discussion Erwith
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Erwith

XLDnaute Nouveau
Bonjour,

Je me suis lancé il y a quelque temps dans un système de recherche avec une liste multi-critère.

J'ai réussi à obtenir un résultat satisfaisant, mais il reste quelques problèmes que j'ai essayé de résoudre seul, en vain.

Mon formulaire de recherche rassemble 4 critères:
- 2 ComboBox avec divers champs ne proposant pas de problème,
- 1 TextBox qui recherche actuellement des partie de mot,
Exemple : Dossier à rechercher = Bananes à Gogo
Pour l'instant, je peux chercher avec les mots clés suivants : Banan* ou *Gogo* ou *à*.
- 1 ComboBox qui détermine l'onglet dans lequel la recherche doit s'effectuer.

Etant donné que mon fichier est confidentiel, je vous insère mon code pour illustrer celà :

Code:
Private Sub Effacer_Click()
    Selection_mois = ""
    selection_conseiller = ""
    selection_affaire = ""
    TextBox1 = ""
End Sub

Private Sub TextBox1_Change()
End Sub

Private Sub UserForm_Initialize()
    Dim a As String
    Dim b As String
    Dim c As String
    Dim d As String
    Dim e As String
    Dim f As String
    Dim g As String
    Dim h As String
    Dim i As String
    Dim j As String
    Dim k As String
    Dim l As String
    Dim m As String
    Dim n As String
    Dim o As String
    Dim p As String
    Dim q As String
    Dim r As String
        a = "Janvier 2011"
        b = "Février 2011"
        c = "Mars 2011"
        d = "Avril 2011"
        e = "Mai 2011"
        f = "Juin 2011"
        g = "Juillet 2011"
        h = "Août 2011"
        i = "Septembre 2011"
        j = "Octobre 2011"
        k = "Novembre 2011"
        l = "Décembre 2011"
        m = "tuj"
        n = "vup"
        o = "som"
        p = "échéancier"
        q = "en suspens"
        r = "bai"
            Selection_mois.AddItem a
            Selection_mois.AddItem b
            Selection_mois.AddItem c
            Selection_mois.AddItem d
            Selection_mois.AddItem e
            Selection_mois.AddItem f
            Selection_mois.AddItem g
            Selection_mois.AddItem h
            Selection_mois.AddItem i
            Selection_mois.AddItem j
            Selection_mois.AddItem k
            Selection_mois.AddItem l
            selection_conseiller.AddItem m
            selection_conseiller.AddItem n
            selection_conseiller.AddItem o
            selection_affaire.AddItem p
            selection_affaire.AddItem q
            selection_conseiller.AddItem r
End Sub
Private Sub Rechercher_Click()
    Dim lgLigDeb As Long
    Dim NbColonnes As Long
    Dim lgColDeb As Long
    
    Dim Conseiller As String
    Dim Affaire As String
    Dim Nom_affaire As String
    
    Conseiller = "*"
    If selection_conseiller.Value <> "" Then Conseiller = selection_conseiller.Value
    Affaire = "*"
    If selection_affaire.Value <> "" Then Affaire = selection_affaire.Value
    Nom_affaire = "*"
    If TextBox1.Value <> "" Then Nom_affaire = TextBox1.Value
        
    ListBox1.Clear
    
    ' Nombre de colonnes à charger
    NbColonnes = 5
    ListBox1.ColumnCount = 5
    
    ' Largeur des colonnes
    ListBox1.ColumnWidths = "50;50;30;200;200"
        
    ' Boucle de la 2ème à la dernière ligne de la feuille Feuil1
    If Selection_mois = "" Then Selection_mois = "Janvier 2011"
    Sheets(Selection_mois.Value).Select
    For lgLigDeb = 3 To Range("B" & Cells.Rows.Count).End(xlUp).Row
        If Range("C" & lgLigDeb).Value Like Conseiller And Range("B" & lgLigDeb).Value Like Affaire And Range("D" & lgLigDeb).Value Like Nom_affaire Then
            With ListBox1
                .AddItem Range("A" & lgLigDeb).Value
                For lgColDeb = 2 To NbColonnes
                    If lgColDeb = NbColonnes Then
                        .List(.ListCount - 1, lgColDeb - 1) = Cells(lgLigDeb, lgColDeb).Value
                    Else
                        .List(.ListCount - 1, lgColDeb - 1) = Cells(lgLigDeb, lgColDeb).Value
                    End If
                Next lgColDeb

            End With
        End If
    Next lgLigDeb
End Sub

Private Sub CommandButton2_Click()
Formulaire1.Hide
End Sub

(Image de mon formulaire en annexe)

Voici mes 2 problèmes :
La TextBox de mon formulaire ne recherche que les parties de nom écritent en respectant la casse, et une * est indispensable pour rechercher une partie de mot se trouvant au milieu du nom du dossier.
J'ai essayé de modifier celà, mais je n'ai pas trouvé comment faire 🙁.

2ème problème, ma ComboBox permettant de séléctionner l'onglet par rapport au mois me convient, mais j'aimerai y ajouter un système permettant de rechercher dans l'intégralité des 12 onglets en même temps, quand on ne connais pas la période.

Voilà, je ne sais pas si c'est possible, mais en tout cas, moi, je déclare forfais !
(A savoir, je ne suis que débutant en VBA et je pompe, modifie, complète des boûts de codes recherchés sur Internet. Mes codes sont assurément beaucoup plus compliqué que ce qui est possible de faire.)
 

Pièces jointes

  • Formulaire.jpg
    Formulaire.jpg
    34.4 KB · Affichages: 216
  • Formulaire.jpg
    Formulaire.jpg
    34.4 KB · Affichages: 237
  • Formulaire.jpg
    Formulaire.jpg
    34.4 KB · Affichages: 243
Re : Système de recherche avec liste multi-critères / critères pas assez flexibles

bonjour Erwith le forum
oui c'est possible de tout faire mais sans fichier là c'est pas possible
alors met nous un petit fichier représentatif et on va te modifier cela
a+
papou🙂
 
Re : Système de recherche avec liste multi-critères / critères pas assez flexibles

Voilà le fichier de base, avec certaines données en moins.

J'ai également supprimer 6 onglets (Juillet à Décembre) pour que le fichier ait une taille acceptable pour être mis en pièce jointe.
 

Pièces jointes

Re : Système de recherche avec liste multi-critères / critères pas assez flexibles

Bonjour erwith le forum
Bon alors il y a du changement dans ton code, en fait j'ai tout refait , j'ai ajouté une feuille ou tu as la liste des mois ainsi que la liste sans doublons des conseillers et des je ne sais plus quoi.
Ces listes sont créées à l'ouverture de l'userform et c'est le résultat sans doublon de tout ce que tu as dans les colonnes B et C sans doublons. et c'est dans C2 et C3
Maintenant si tu tapes n'importes quoi dans le textbox1 même si les autres combobox sont vides tu vas chercher dans toutes les feuilles si le combobox mois et vide enfin testes et redis moi je pense que cela va te plaire
La recherche n'a plus besoin de bouton c'est le changement du textbox qui déclenche la recherche
a+
papou 🙂
 

Pièces jointes

Dernière édition:
Re : Système de recherche avec liste multi-critères / critères pas assez flexibles

Re bonsoir Erwith le forum
Bon alors une autre version avec là une recherche sur toutes les colonnes de B à E la version 1 recherchait le texte du textbox1 contenu dans les colonnes D à E
là si tu tapes rien dans les combobox mais seulement un texte dans le textbox recherche là tu auras la liste enfin essayes et redis moi
en plus c'est pas facile avec aucune données !!!!!!!!!!!!!!!!!!!!!!!!
si tu sélectionnes une valeur dans les combobox il en tient compte aussi naturellement
a+
papou🙂
 

Pièces jointes

Dernière édition:
Re : Système de recherche avec liste multi-critères / critères pas assez flexibles

Re erwith le forum
bon pas de retour mais bon j'ai ajouté a la version 2 la possibilité si tu cliques sur une ligne de la listbox, cela te renvoi dans la feuille ou se trouve le projet et sélectionne ce dernier
a+
papou🙂
 

Pièces jointes

Dernière édition:
Re : Système de recherche avec liste multi-critères / critères pas assez flexibles

Merci beaucoup pour ton travail, Paritec, ça a du te donner un boulot fou !

Mais par contre, pourrais-tu mettre en fichier attaché, le document .xls ? Car comme mon ordinateur a plein de restrictions, je ne peux pas télécharger de dossier provenant d'internet sans avoir l'accord d'un administrateur...

Autrement, je vais essayer de comprendre ton code, car j'ai un peu honte de t'avoir tout fait refaire.

Merci et a+
 
Re : Système de recherche avec liste multi-critères / critères pas assez flexibles

Re-bonjour,

Merci beaucoup pour ta rapidité et la qualité de ton travail, Paritec.

Je me suis rendu compte à quel point j'avais du boulot pour m'améliorer en programmation.
Ton fichier final me convient tout à fait.

Merci encore.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
281
Réponses
4
Affichages
177
Réponses
5
Affichages
234
Réponses
2
Affichages
153
Réponses
5
Affichages
182
Réponses
4
Affichages
222
Retour