Macro de recherche dans une base de données

Résolu
nihcoc Messages postés 193 Date d'inscription   Statut Membre Dernière intervention   -  
nihcoc Messages postés 193 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'aurais aimé que lorsque je fais une recherche via une boite de dialogue , j'ai automatiquement un astérique avant et après .
exemple: *cha*
et modification si possible d'une macro qui enlève le filtrage .
ci-joint un classeur.
https://cjoint.com/c/HBbjYRjYYIW

j'ai win 10
et excel 2000

Merci par avance

4 réponses

  1. julia Namor Messages postés 532 Statut Membre 33
     
    Bonsoir
    ceci devrait faire l'affaire.
    remplace ton code par celui ci

    Sub recherche()
    Dim cell As Range
    Application.ScreenUpdating = False

    marecherche = InputBox("Saisir la ou les premières lettres du mot ", "Recherche de mot (s) ")
    If marecherche = "" Then Exit Sub
    DL = ActiveSheet.Range("B" & Rows.Count).End(xlUp).Row
    For Each cell In ActiveSheet.Range("B4:B" & DL)
    If cell.Value = marecherche Then
    cell.Value = "*" & marecherche & "*"
    End If
    Next
    Set resultat = ActiveSheet.Range("B4:B" & DL).Find(what:="*" & marecherche & "*", Lookat:=xlWhole)
    Range("b4").Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=2, Criteria1:="*" & marecherche & "*", Operator:=xlAnd
    Application.ScreenUpdating = True
    End Sub


    bien cordialement
    0
  2. nihcoc Messages postés 193 Date d'inscription   Statut Membre Dernière intervention   5
     
    Je vous remercie beaucoup pour votre réponse, c'est excellent .

    par contre j'avais une 2ème question .
    jusqu'ici j'enlevais le filtrage automatique avec cette macro qui marche bien,mais pour des listes très longues cela prend du temps .

    Sub Macro2()
    Selection.AutoFilter Field:=1
    Selection.AutoFilter Field:=2
    Selection.AutoFilter Field:=3
    Selection.AutoFilter Field:=4
    Selection.AutoFilter Field:=5
    End Sub

    dans le forum , j'ai trouvé cette macro ci-dessous qui est beaucoup plus rapide ,par contre elle supprime le carrément le filtrage automatique.

    Sub rétablir()
    On Error GoTo finerreur
    Selection.AutoFilter
    GoTo fin
    finerreur:
    fin:
    End Sub

    Y aurait-il un moyen d'y remédier ?

    Merci d'avance
    0
    1. julia Namor Messages postés 532 Statut Membre 33
       
      bonjour
      j'avoue que j'ai beau retourner votre question dans tous les sens , je ne comprends pas .

      pour moi votre macro fait le job
      Sub rétablir() 

      dit m'en plus
      0
    2. nihcoc Messages postés 193 Date d'inscription   Statut Membre Dernière intervention   5
       
      Bonsoir

      Simplement j'ai un classeur avec de nombreuses lignes (30000) ,ou j'utilise la macro(2) qui me sert a enlever le filtrage ,qui marche ,mais qui est très longue.
      j'aurais aimé utiliser a la place la macro (retablir), qui marche très bien mais qui supprime le filtre automatique. (que j'utilise d'ailleur très souvent)
      question serait-il possible de faire la même macro , sans supprimer le filtre automatique ,juste rétablir la feuille comme a l'origine.

      j'espère avoir été clair!
      Merci a vous
      0
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    remet-le dans la foulée :
    Sub retablir()
        [A1].AutoFilter
        [A1].AutoFilter
    End Sub

    eric

    0
    1. nihcoc Messages postés 193 Date d'inscription   Statut Membre Dernière intervention   5
       
      Merci pour tout
      0