Combiner deux types de recherches sur un moteur de recherche

coktoy

XLDnaute Nouveau
Bonjour à tous, Bonjour le Forum,
je suis nouveau sur le forum donc j'éspere pouvoir être le plus précis dans ma question.
Je travaille sur un fichier excel regroupant des données de stations du groupe où je travaille et je voudrais créer un petit moteur de recherche pour me donner certaines catégories de données appartenant à chaque feuille. Je débute tout juste sur excel VBA, mais en m'inspirant "grandement" de certains exemples et tutos, j'ai réussit à me rapprocher de mon objectif final.
Pour être précis, ce dossier contient plusieurs feuilles, contenant chacune plusieurs tableaux de données sous le même format (chaque feuille est identique sur la forme). J'ai mis en place sur la première un moteur de recherche avec deux listes de recherche multicritère, une par feuille et l'autre par tableaux. Chacune d'elle marche sans problème :D. Cependant lorsque j'essai de les combiné afin de n'obtenir par exemple qu'un type de tableau pour une feuille, plus rien, la listbox devient blanche. J'ai essayé de prendre des exemples déjà validé mais je ne m'en sort pas.
Un peu d'aide me serais grandement utile car je n'ai commencé à utiliser VBA que la semaine dernière.je reste à votre disposition si vous avez des questions Merci.

PS : je vous joint le fichier sur lequel je travaille. Les tableaux sont vides de données pour des raisons de confidentialité
 

Pièces jointes

  • Moteur de recherche combinées excel.zip
    180.3 KB · Affichages: 65
  • Moteur de recherche combinées excel.zip
    180.3 KB · Affichages: 62
  • Moteur de recherche combinées excel.zip
    180.3 KB · Affichages: 60

Robert

XLDnaute Barbatruc
Repose en paix
Re : Combiner deux types de recherches sur un moteur de recherche

Bonjour Coktoy et bienvenu, bonjour le forum,

En pièce jointe ton fichier modifié (c'est marrant je connais ces commentaires...).
 

Pièces jointes

  • Coktoy_v01.zip
    197.9 KB · Affichages: 64

JBOBO

XLDnaute Accro
Re : Combiner deux types de recherches sur un moteur de recherche

Bonjour,

Je ne suis surement pas la personne la mieux placée sur le forum pour te repondre, car completement archi nul en macro, mais avec des formules j'ai reussi je pense à faire ce que tu demandes. A voir si tu peux t'en inspirer ou si tu peux mettre les formules sur une page annexe et te servir du résultat pour ta macro.

A toi de voir !
 

Pièces jointes

  • Moteur de recherche combinées excel.zip
    223.9 KB · Affichages: 62
  • Moteur de recherche combinées excel.zip
    223.9 KB · Affichages: 62
  • Moteur de recherche combinées excel.zip
    223.9 KB · Affichages: 66

coktoy

XLDnaute Nouveau
Re : Combiner deux types de recherches sur un moteur de recherche

Merci beacoup Robert, et oui comme je l'ai dit je me suis "grandement" (et plus) inspiré de l'exemple que tu as fait pour fourchette. Je n'ai commencé que la semaine dernière et donc mes connaissances en la matière sont plus que basiques, mais le fait d'avoir vu les nombreuses possibilités d'application, m'ont données envie de pousser un peu plus loin l'interet.
Bref, étant de nature très curieux, je voulais savoir dans la mesure du possible, si tu pouvais m'expliquer la modification que tu as faite dans la partie "suppréssion des données non compatibles" car je comprend pas trop à quoi cela correspond.
En tout cas merci encore, pour le service.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Combiner deux types de recherches sur un moteur de recherche

Bonjour le fil, bonjour le forum,

Voici le code initial:
Code:
Public Sub Supr_non_Comp() 'procédure de suppression des données non compatibles sur les Searchs combinées
If AsIs.Data.Value <> "" Then 'condition : si un type de donnée est renseigné
    'condition 8 bis : si ce type de donnée est différent de celui renseigné
    If CStr(cel.Offset(0, 4).Value) <> AsIs.Data.Value Then
        AsIs.ListBox1.RemoveItem (AsIs.ListBox1.ListCount - 1) 'supprime l'élément de la ListBox1
        GoTo fin 'va à l'étiquette "fin"
    End If 'fin de la condition bis
End If 'fin de la consition
fin: 'étiquette
End Sub
et voici le code modifié (j'ai encore supprimé des lignes inutiles) :
Code:
Public Sub Supr_non_Comp() 'procédure de suppression des données non compatibles sur les Searchs combinées
If AsIs.Data.Value <> "" Then 'condition : si un type de donnée est renseigné
    'condition 8 bis : si ce type de donnée est différent de celui renseigné
    If CStr(cel.Value) <> Data.Value Then
        AsIs.ListBox1.RemoveItem (AsIs.ListBox1.ListCount - 1) 'supprime l'élément de la ListBox1
    End If 'fin de la condition bis
End If 'fin de la consition
End Sub
Le code commence par ajouter la ligne de la plage pl dans la listbox puis il doit vérifier si le Data type est compatible (par la macro Supr_non_Comp). Or le Data Type se trouve dans la colonne B, donc cel.Value et non pas cel.Offset(0,4).Value.
Dans la version que je t'avais donné j'avais rajouté :
Code:
Or CStr(cel.Offset(0, -1).Value) <> Me.LS.Value
Mais finalement c'est inutile... puisque l'on est forcément dans l'onglet renseigné par la combobox LS.
 

coktoy

XLDnaute Nouveau
Re : Combiner deux types de recherches sur un moteur de recherche

Merci beaucoup Robert, pour le temps que tu as accordé à ma requête. Ca ma permis de comprendre deux ou trois petits trucs supplémentaires... :D
J'avais une autre petites question, par rapport à la Listbox : est-ce qu'on peut modifié les options de présentation? Je m'explique, pour reprendre mon exemple, ajuster les largeurs de colonnes affichées, faire en sorte que la première ligne soit d'une autre couleur, ou mettre en surbrillance les croix... enfin ce genre de choses pour le rendre plus esthétique. Merci d'avance.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Combiner deux types de recherches sur un moteur de recherche

Bonjour Coktoy, bonjour le forum,

Je sais que @thierry (extra-terrestre Rolling-Stonien) avait fait une démo avec une listbox colorée. J'ai retrouvé un lien mais il est mort et je ne sais pas comment y revenir.
Sinon tu peux modifier la taille des colonnes (propriété ColumnWidths) où tu rentres la largeur de chaque colonne séparée par un point-virgule (;). Pour la hauteur de ligne je pense pas que tu puisses modifier. En fait il y a peu de possibilités niveau mise en forme.
 

Discussions similaires

Statistiques des forums

Discussions
312 199
Messages
2 086 158
Membres
103 139
dernier inscrit
Bidi