Recherche à partir d'un critère partiellement écrit

Bonjour à tous,

Je sollicite votre aide concernant un fichier que j'ai élaboré avec l'aide bienvenue de personnes de ce forum. C'est un fichier excel dans lequel je peux effectuer des recherches multicritères au sein d'une large bdd.

Seulement, pour que la recherche s'effectue, je dois taper le critère exact (ex: Vendome). Serait-il possible, en conservant la même base de fichier et le même type de macro, de n'effectuer la recherche qu'à partir d'un bout de critère ? (ex: Vend, tous les noms de villes commençant par "Vend"...)

Je vous joins le fichier pour que vous puissiez vous rendre compte de ma demande.

Merci beaucoup pour votre précieuse aide.

Thibaut

Bonjour

Remplaces la formule en B11 par celle-ci

=ET(OU($B$5="";$B$5=L2);OU($B$7="";$B$7=N2);OU($B$9=0;ESTNUM(CHERCHE($B$9;O2;1))))

Retournera tous les enregistrements contenant le mot tapé en B9

Presque parfait !

Seul bémol, quand je ne rentre aucun critère, toute ma base de données s'affiche, ce qui entraine un ralentissement énorme sur une bdd de 10000 données... Comment faire pour que si aucun critère n'est rempli, aucun résulta n'apparaisse ?

Merci beaucoup !

Thibaut

Bonjour

thiboh41 a écrit :

Seul bémol

Oui mais avant aussi cela existait

Il faut modifier la macro (pas trouvé autre moyen)

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Application.Intersect(Target, Range("B5:B9")) Is Nothing Then
    On Error Resume Next
    ActiveSheet.ShowAllData
    On Error GoTo 0

    lg = Range("L" & Rows.Count).End(xlUp).Row
    If Application.CountA(Range("B5:B9")) = 0 Then
      Range("E2:I" & lg).ClearContents
    Else
      Range("L1:P" & lg).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
        Range("B10:B11"), CopyToRange:=Range("E1:I1"), Unique:=False
    End If
  End If
End Sub

N'est t'il pas possible de ne changer que la formule en B11 ?

Car la macro fonctionne sur le fichier test, mais je n'arrive pas à la transposer sur un autre fichier, pourtant je n'ai changer que les plages de cellules...

Help !

Cordialement

Thibaut


Dans le fichier test, la solution était de remplacer la formule en B11 par celle ci :

[code]=SI(ET($B$5="";$B$7="";$B$9="");FAUX;ET(OU($B$5="";$B$5=L2);OU($B$7="";$B$7=N2);OU($B$9=0;$B$9=P2)))/code]

Or, cette formule permet de rechercher les critères uniquement s'ils sont rentrés entièrement !

Est-il possible de mixer votre formule avec celle ci, pour n'effectuer la recherche quand le critère est partiellement rempli, tout en ne faisant apparaitre aucun résultat si aucun critère n'est renseigné ?

Cordialement

Thibaut

Bonjour

A vérifier

=SI(ET($B$5="";$B$7="";$B$9="");FAUX;ET(OU($B$5="";$B$5=L2);OU($B$7="";$B$7=N2);OU($B$9=0;ESTNUM(CHERCHE($B$9;O2;1)))))

bojour ;bonjour banzai

il me semble qu'avec cette formule il est possible de renvoyer vrai avec une saisie partielle

=ET(OU($B$5="";$B$5=L2);OU($B$7="";$B$7=N2);OU($B$9=0;EQUIV("*"&B9&"*";colo;0)>=1))

bon maintenant ;il faudrait une 4émé cel de critere ravec index( l'equiv ("*".... qiui remplacerait la 3 parce que cette derniere aynt une valeur tronquée ne peu servir de critere ;alors que cette 4eme aurait le mot entier

cordialement

Merci beaucoup Banzai, ça marche parfaitement !

Merci aussi à toi partulipe pour ta réponse.

Bonne soirée,et merci encore.

Cordialement,

Thibaut

Rechercher des sujets similaires à "recherche partir critere partiellement ecrit"