IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Moteur de recherche Macro Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 4
    Par défaut Moteur de recherche Macro Excel
    Bonjour à tous,

    Je suis plus que débutant en écriture VBA ainsi qu'en Macro, et dans le cadre de mon travail je dois travailler avec cet outil.
    J'ai crée un tableau Excel qui répertorie plusieurs documents avec des critères différents (contenu, marché, cible interrogée, etc.) sur la même page.

    J'aimerai sur une feuille à part, créer un moteur de recherche qui trouvera tous les éléments correspondant (sur les différentes colonnes) de la recherche et d'afficher les lignes correspondantes dans une nouvelle fenêtre.

    Merci pour votre aide!

  2. #2
    Membre averti
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Août 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant MOA
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2011
    Messages : 16
    Par défaut
    Sauf erreur de ma part, une macro ne me semble pas indispensable.

    Une filtre automatique sur la ligne des intitulés ne serait-il pas plus simple à utiliser et à faire?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 4
    Par défaut
    Merci pour ton retour. Peut-être que j'utilise très mal les filtres automatique, mais malheureusement dans certaines cellules il y a beaucoup de texte (plusieurs mots qui se suivent). Donc si je cherche un mot en particulier dans une cellule, le filtre automatique n'arrivera pas à le trouver, je me trompe ?

    En gros j'aimerai faire un moteur de recherche type google qui scanne les mots clés dans le corps du texte.
    Je ne sais même pas si c'est possible.

  4. #4
    Membre averti
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Août 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant MOA
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2011
    Messages : 16
    Par défaut
    Merci pour ton retour. Peut-être que j'utilise très mal les filtres automatique, mais malheureusement dans certaines cellules il y a beaucoup de texte (plusieurs mots qui se suivent).
    En séparant les mots clés par types dans des colonnes?

    Donc si je cherche un mot en particulier dans une cellule, le filtre automatique n'arrivera pas à le trouver, je me trompe ?
    Avec le filtre textuel, tu peux faire une recherche sur un ou deux mots contenus dans une cellule.

    Sinon, sans aller jusqu'à refaire le moteur de Google, il faudra effectivement passer par une petite macro.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 4
    Par défaut
    Je suis sous excel 2003, j'ai l'impression qu'il n'y a pas la fonctionnalité filtre textuel dans la version 2003.

    Effectivement je pense qu'une macro pourrait m'aider, cependant je ne sais pas comment cela fonctionne, une petite aide serait la bienvenue!

  6. #6
    Membre averti
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Août 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant MOA
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2011
    Messages : 16
    Par défaut
    Dans ton classeur Excel, tu dois avoir trois onglets:
    - un avec les info sources
    - un dans lequel voir le résultat
    - un avec le champ de recherche et un bouton pour lancer la macro.

    Dans le code, tu remarqueras que les noms des onglets sont des constantes.
    Tu n'as plus qu'à les modifier pour les adapter à tes onglets

    Par ailleurs, tu vas ouvrir le VBE (ALT+F11) et créer un nouveau module (Clic droit sur le projet, et ajouter un module), dans lequel tu colleras le code suivant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Const Sht_Ori = "Origine" ' Onglet de départ avec toutes les valeurs
    Const Sht_Cib = "Cible" ' Onglet où s'affichera l'objet de la recherche
    Const Sht_Acc = "Accueil" 'Onglet avec le champ des mots à rechercher et le bouton de lancement de la macro
     
    Sub Recherche_Mot()
    Dim Nbr_Lig As Long, Nbr_Col As Long, Nbr_Mot As Long, Num_Lig As Long
    Dim i As Long, j As Long, k As Long, Tab_Temp
    Dim Tst_Mot As Boolean
    With ThisWorkbook
        With .Worksheets(Sht_Acc) 'Compte le nombre de mots
            Tab_Temp = Split(.Range("A1").Value, " ") 'Note les mots rechercher dans un tableau temporaire
            Nbr_Mot = UBound(Tab_Temp) 'Compte le nombre de mots à rechercher
        End With
        With .Worksheets(Sht_Ori) 'Dimensionne le tableau
            Nbr_Lig = .Range("A65536").End(xlUp).Row 'Compte le nombre de lignes
            Nbr_Col = .Range("IV1").End(xlToLeft).Column 'Compte le nombre de colonnes
        End With
        For i = 1 To Nbr_Lig 'Boucle sur les lignes
            Tst_Mot = False 'Réinitialise l'indicateur de test
            For j = 1 To Nbr_Col 'Boucle sur les colonnes
                For k = 0 To Nbr_Mot 'Boucle sur les mots
                    If InStr(Worksheets(Sht_Ori).Cells(i, j).Value, Tab_Temp(k)) > 0 Then
                        Tst_Mot = True 'Test validé si au moins un mot est trouvé dans une ligne
                    End If
                Next k
            Next j
            If Tst_Mot = True Or i = 1 Then 'Si le test est validée ou s'il s'agit de la ligne d'en tête copie de la ligne
                Num_Lig = Num_Lig + 1 'Incrémente le nombre de lignes de l'onglet cible
                Worksheets(Sht_Cib).Rows(Num_Lig).Value = Worksheets(Sht_Ori).Rows(i).Value
            End If
        Next i
    End With
    End Sub
    Une fois la macro installée, va dans l'onglet de lancement (l'accueil) et place un bouton pour lancer la macro que tu viens de mettre.

    Pour le moment, la macro permet simplement de recopier les lignes de l'onglet d'origine vers l'onglet cible lorsqu'elles comportent aux moins un mot.

    Pour faire un test sur la présence de tous les mots, ou pour mettre les mots en couleur, etc, je te laisse le plaisir de bidouiller ce bout de code.

    En espérant t'avoir aidé.

Discussions similaires

  1. Fonction Moteur de Recherche sous Excel
    Par Frédéric_V dans le forum Excel
    Réponses: 1
    Dernier message: 25/10/2012, 07h36
  2. [XL-2003] Moteur de recherche Macro
    Par thomthom76 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/06/2012, 10h39
  3. créer un moteur de recherche sur excel
    Par maximus306 dans le forum Excel
    Réponses: 1
    Dernier message: 21/05/2012, 19h22
  4. macro moteur de recherche sur excel
    Par VEROLYDE dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/08/2010, 15h36
  5. Moteur de recherche avec Excel dans des onglets ?
    Par jufabref dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/07/2008, 13h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo