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

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: 211
  • Formulaire.jpg
    Formulaire.jpg
    34.4 KB · Affichages: 232
  • Formulaire.jpg
    Formulaire.jpg
    34.4 KB · Affichages: 239

Paritec

XLDnaute Barbatruc
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:)
 

Erwith

XLDnaute Nouveau
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

  • 2011_2.xls
    274 KB · Affichages: 168

Paritec

XLDnaute Barbatruc
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

  • Erwith 1.zip
    59.8 KB · Affichages: 78
Dernière édition:

Paritec

XLDnaute Barbatruc
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

  • Erwith 2.zip
    60.5 KB · Affichages: 179
Dernière édition:

Paritec

XLDnaute Barbatruc
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

  • Erwith 5.zip
    63.8 KB · Affichages: 226
Dernière édition:

Erwith

XLDnaute Nouveau
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+
 

Erwith

XLDnaute Nouveau
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.
 

Discussions similaires

Réponses
12
Affichages
440
Réponses
2
Affichages
220

Statistiques des forums

Discussions
312 167
Messages
2 085 895
Membres
103 021
dernier inscrit
Sergyl75