Création d'un formulaire de recherche multi critère

lisooo

XLDnaute Nouveau
Bonjour a tous,
Je suis en train d'essayer, et comme je débute ce n'est pas du tout simple, de comprendre comment créer un formulaire de recherche multi critère dans excel.

On imagine qu'on a une "base de donnée" avec trois critères (Jurisprudence, Type et Date).

J'ai déjà créé un formulaire servant à remplir ces trois critères et maintenant je voudrais en créer un afin de rechercher les données avec un ou plusieurs critères.
Je suis sûre que c'est faisable, mais étant donné mon niveau, compliqué pour moi.

Cela dit, je suis vraiment intéressée, donc je cherche vraiment à comprendre ce que je fais et pas un code "tout prêt", même si à la fin je voudrais que cela fonctionne!

J'ai déjà fait pas mal de recherche mais rien trouvé de vraiment intéressant...

J'espère que vous pourrez m'aider,
Merci,
Lisa
 

Pièces jointes

  • Test0.xlsm
    26.9 KB · Affichages: 233
  • Test0.xlsm
    26.9 KB · Affichages: 175
  • Test0.xlsm
    26.9 KB · Affichages: 194

jp14

XLDnaute Barbatruc
Re : Création d'un formulaire de recherche multi critère

Bonjour et bienvenue sur le forum

Ci dessous un exemple de code paramétrable, pour 2 valeurs.
A adapter en fonction du problème
On retrouve le principe dans l'aide de VBA pour "find"
Code:
'rechercher une ligne avec 2 valeurs
'colonnenom : colonne pour la recherche
' £nomf nom de la feuille pour recherche
' valeur1 première valeur à chercher
' valeur2 deuxième valeur
' offset1 offset de la colonne par rapport à la première
' la recherche commence à la première ligne
'Le résultat est mis dans une collection pour eviter les doublons
' la collection est déclarée comme variable publique
Sub rechercheprenom(colonnenom As String, £nomf As String, valeur1 As String, valeur2 As String, offet1 As Byte)
Dim Cel As Range
Dim FirstAddress As String
Dim £data As String
With Worksheets(£nomf)

On Error Resume Next '
With .Range(colonnenom & "1:" & colonnenom & .Range(colonnenom & "65536").End(xlUp).Row)
    Set Cel = .Find(valeur1, LookIn:=xlValues, LookAt:=xlWhole)
    If Not Cel Is Nothing Then
        FirstAddress = Cel.Address
        Do
            If Cel.Value <> "" Then
                   If Cel.Offset(0, offet1) = valeur2 Then Coll.Add £data, CStr(£data)

            End If
            Set Cel = .FindNext(Cel)
        Loop While Not Cel Is Nothing And Cel.Address <> FirstAddress
    End If
End With
End With
On Error GoTo 0
End Sub

JP
 
Dernière édition:

lisooo

XLDnaute Nouveau
Re : Création d'un formulaire de recherche multi critère

Tout d'abord merci de votre aide.
Je me trouve face à deux problèmes :
Ma première ligne est une "Private Sub", puisque la recherche est activée par la commande recherche.
Donc je ne sais déjà pas comment gérer ce problème...
Ensuite, je ne comprend pas le code en entier...
Bref, je suis perdue...
Mais je continue de chercher, je n'abandonne pas!
 

jp14

XLDnaute Barbatruc
Re : Création d'un formulaire de recherche multi critère

Bonjour

Ci joint le fichier avec un userform a terminer et à modifier en fonction de la présentation du résultat obtenu.

La recherche peut se faire avec 1, 2 ou 3 critères. Find posant des problèmes pour trouver une date, il y a deux programmes de recherche, le deuxième est à utiliser si le premier critère est la date.
Les combobox sont alimentés avec une collection sauf pour les dates, ce qui évite les doublons.


A tester

JP
 

Pièces jointes

  • CVT6CA .xls
    75.5 KB · Affichages: 553
Dernière édition:

youky(BJ)

XLDnaute Barbatruc
Re : Création d'un formulaire de recherche multi critère

Bonsoir Lisooo, jp14,
J'ai un fichier qui répond bien à la demande pour la recherche.(avec filtre et macro)
Voici avec qlq modif le résultat et date Ok
Mes recherches se font du genre si vous avez tapé k *k* sauf les colonnes dates ou chiffres.
Donc pour trouver Téléskis ici "k" va les ramenner.
Les codes des textbox sont en "visualiser le code" sur click droit de l'onglet.
Bonne continuation
Bruno
 

Pièces jointes

  • Test1.xls
    67.5 KB · Affichages: 320
  • Test1.xls
    67.5 KB · Affichages: 250
  • Test1.xls
    67.5 KB · Affichages: 328

jp14

XLDnaute Barbatruc
Re : Création d'un formulaire de recherche multi critère

Bonjour

Ci joint le fichier avec un combobox qui contient des dates triées.
Un click sur une ligne de la Listbox positionne le curseur sur la ligne correspondante

A tester

JP
 

Pièces jointes

  • CVT6CAv2 .xls
    71.5 KB · Affichages: 445

lisooo

XLDnaute Nouveau
Re : Création d'un formulaire de recherche multi critère

Bonjour à tous!
Je suis très embêtée de ne répondre que maintenant mais je n'ai reçu aucune notification de vos réponses...
Bref, je vais regarder attentivement ce que vous m'avez envoyé et vous dirai si je rencontre des difficultés.
En tous cas, merci à tous!
Lisa
 

lisooo

XLDnaute Nouveau
Re : Création d'un formulaire de recherche multi critère

Re bonjour à tous!

J'ai regardé vos commentaires et vos fichiers et, évidemment je suis perdue!!
Comme j'avais du mal avec la recherche multi-critère et que ça ne correspondait pas bien à ce que je cherchais, je me suis tournée vers le tri.

J'ai donc un formulaire construit sur la base du tri :
If TextBoxAnnée.Text = "1970" Then
ActiveSheet.Range("$A$2:$ZZ$5000").AutoFilter Field:=2, Operator:= _
xlFilterValues, Criteria2:=Array(0, "5/16/1970")

Mon problème : cela m'oblige à rentrer toutes les valeurs possible après le If. Je voulais donc savoir s'il existait un code permettant de mettre If Textbox.Text = "quelquechose" Then...

Mon second problème est différent : dans mon formulaire j'ai un bouton de commande "lien". J'aimerai que celui-ci ouvre la boite de dialogue d'ajout d'un lien hypertexte d'excel... Est-ce possible?

Merci pour vos réponses,
Lisa
 

doudou33

XLDnaute Nouveau
Re : Création d'un formulaire de recherche multi critère

Merci pour le temps passé mais je pense que je vais chercher avec un autre codage vu que je ne maitrise pas le vôtre! J'ai cherché pourtant mais codage trop complexe pour moi.

Salutations
 

Discussions similaires

Réponses
17
Affichages
664
Réponses
3
Affichages
340
Réponses
21
Affichages
1 K

Statistiques des forums

Discussions
312 283
Messages
2 086 774
Membres
103 391
dernier inscrit
lrol