Formulaire de recherche multicritère ET/OU

  • Initiateur de la discussion Initiateur de la discussion Tahititin
  • 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 !

Tahititin

XLDnaute Occasionnel
Bonjour,

Je travail actuellement sur un formulaire de recherche permettant de rechercher des documents dans une base de donnée de plusieurs milliers de lignes. Pour cela 3 champs sont à renseigner : Disciplines, Bloc, mots clefs. Chacun des 3 champs peut être renseignés individuellement ou compilés avec un autre ou les deux autres!
Je parviens à faire ce travail pour 2 des champs (disciplines et mot clefs) mais je bloque sur le 3ème (bloc). Je vous joins un fichier avec une partie de la base de données en exemple.
Autre point qui me perturbe, je n'arrive pas à intégrer la recherche par mot clefs en ignorant les accents (Cf. Code)

Merci de votre aide
 

Pièces jointes

Bonjour et merci Boisgontier,

Il n'y a vraiment pas de possibilité d'ajouter un combobox2 pour faciliter la recherche ? pour faire une sorte de filtre de recherche multicritère dynamique. Les points d'entrée pour la recherche dans la base de données étant la discipline (environ 50) ET/OU le bloc (5 choix) puis un mot clef pour affiner la recherche.... ou un mot clef pour trouver l'ensemble des documents de tous les blocs.

Merci de votre retour
 
Merci Boisgontier,
C'est parfait !
J'avais initialement une Listview et avec la listbox je ne parviens pas à adapter le bout de code qui me permettait d'accéder au document via un lien hypertexte directement depuis la listview (la listbox maintenant) j'ai systématiquement une erreur de compilation (Cf. code ci dessous).
Autre chose, j'ai adapté ton code en fonction de mes besoins, notamment l'affichage des colonnes et en parcourant ton code, je ne vois pas à quel endroit il est possible d’adapter la largeur des colonnes de la listbox


Code:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim L&
E = CInt(ListBox1.SelectedItem)

If Range("F" & E + 1).Hyperlinks.Count = 0 Then
    MsgBox "il n'y a pas de lien hypertexte dans la cellule " & Range("F" & E + 1).Address
Else
    Range("F" & E + 1).Hyperlinks(1).Follow NewWindow:=True
End If
End Sub

merci
 
Version qui ne tient pas compte des accents.

-La largeur des colonnes de la ListBox se fait par rapport aux largeurs de colonnes de la BD (calculées dans EneteListBox). Elle peut être forcée par
'Me.ListBox1.ColumnWidths = "30;30;30;80;30;30;30;30;40"
-Les colonnes de combobox et les colonnes à visualiser se définissent par:

VB:
 ColCombo = Array(2, 9)                       ' A adapter (1 à 8 colonnes maxi)
ColVisu = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)  ' A adapter


Boisgontier
 

Pièces jointes

Dernière édition:
Pour les hyperliens:

VB:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Set result = f.[A:A].Find(what:=Me.ListBox1)
If Not result Is Nothing Then
   ligne = result.Row
   If f.Range("E" & ligne).Hyperlinks.Count = 0 Then
     MsgBox "il n'y a pas de lien hypertexte dans la cellule " & Range("E" & ligne).Address
   Else
     f.Range("E" & ligne).Hyperlinks(1).Follow NewWindow:=True
   End If
End If
End Sub

Boisgontier
 

Pièces jointes

Dernière édition:
Merci Boisgontier,
Avec le dernier code pour les liens hypertexte, j'ai systématiquement une "erreur d'exécution '-2147221014 (800401ea)' : impossible d'ouvrir le fichier" sur la ligne "f.Range("F" & ligne).Hyperlinks(1).Follow NewWindow:=True' .... mais juste sur les 2 premières lignes de la listbox et seulement sur la liste complète (sans avoir renseigné les combobox et le textbox), mes liens hypertexte sont fonctionnelles bien depuis la feuille de classeur ?!? j'ai même testé en inversant l'ordre de la liste et les 2 premières lignes (qui étaient les dernière initialement) bug également....

Avez-vous une idée géniale pour me sortir de ce mauvais pas ?

D'avance merci
 
J'ai repris le fichier d'origine (avec la colonne cachée D).

En phase de test, vous pouvez essayer:

VB:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Set result = f.[A:A].Find(what:=Me.ListBox1)
If Not result Is Nothing Then
   ligne = result.Row
   If f.Range("F" & ligne).Hyperlinks.Count = 0 Then
     MsgBox "il n'y a pas de lien hypertexte dans la cellule " & Range("F" & ligne).Address
   Else
     MsgBox f.Range("F" & ligne).Hyperlinks(1).Address
     f.Range("F" & ligne).Hyperlinks(1).Follow NewWindow:=True
   End If
End If
End Sub

Boisgontier
 

Pièces jointes

Dernière édition:
Boisgontier,
Avec ce nouveau code, le problème des 2 première ligne annoncé dans mon précédent post a disparu ! Cependant contrairement au fichier "essai" que vous m'avez transmis, de mon côté, si il n'y a pas de lien hypertexte en colonne F (donc colonne D vide) j'ai la même erreur d'exécution en débogage... je n'ai pas le msBox "il n'y a pas de lien hypertexte dans la cellule "

Merci
 
- 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
14
Affichages
3 K
Retour