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 avec userform [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Fonctionnaire
    Inscrit en
    Février 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Fonctionnaire

    Informations forums :
    Inscription : Février 2017
    Messages : 18
    Points : 14
    Points
    14
    Par défaut Moteur de recherche avec userform
    Bonjour à tous,

    Je suis débutant en VBA et je souhaiterai une aide.

    J'aimerai inclure dans un classeur excel qui contient plusieurs onglets, un moteur de recherche qui effectue la recherche sur tout les onglets en placent un bouton sur le 1er onglet qui ouvrir une boite de recherche userform,
    dans cette boite il y aurai une case ou on tape le mot recherché et une autre case en dessous un menu type déroulant avec tout les mots trouvés et le nom de l'onglet ou
    ils se trouvent, il ne reste alors plus qu'à sélectionner le mot à la page qui m’intéresse, cliquer sur un bouton OK pour qu'il ouvre l'onglet et mette en surbrillance la ligne du mot trouvé.

    Est ce possible ?


    Merci à vous pour votre aide.

    Cordialement.
    Mat

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 56
    Points : 82
    Points
    82
    Par défaut
    Salut,

    C'est tout à fait possible. Pour commencer je pense que tu pourrais utiliser l'enregistreur de macro sur un ctrl+f pour obtenir le code d'une recherche et voir comment se stockent les résultats. Après la création de l'userform ne devrait pas être trop compliquée

    A+

    Captain

  3. #3
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour, bonjour !

    Ici étant le forum des formules de feuille de calculs, voir donc les exemples dans le bon forum

    Voilà, voilà !

    _________________________________________________________________________________________________________
    Je suis Paris, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  4. #4
    Membre à l'essai
    Homme Profil pro
    Fonctionnaire
    Inscrit en
    Février 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Fonctionnaire

    Informations forums :
    Inscription : Février 2017
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Bonjour,
    Merci pour pour l'aide porté à ma demande.

    CaptainMeta,
    J'avais déjà essayé sans résultat en enregistrant une macro mais en cliquant sur recherché dans l'onglé afficher.
    Je vais essayer avec votre méthode. Merci


    Marc-L,
    Je me suis rendu compte que je n’étais pas dans la bonne section de forum ce matin, j’ai voulu le modifier d'endroit pour le mettre dans la section "macro/VBA" mais malheureusement je ne peux pas le faire et je n'est pas voulu recréer le topic dans cette section pour éviter les doublon (peut être à tord ?) Je m'en excuse.
    Si un modo peux me le déplacer dans la bonne section je l'en remercie.

  5. #5
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Commencer par une boucle For Each sur la collection Worksheets

    Ensuite dans chaque feuille au sein de la boucle utiliser la méthode Find comme dans l'exemple de l'aide VBA.
    S'il y a une correspondance, activer la feuille et sélectionner la cellule puis interrompre cette boucle (Exit For) …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  6. #6
    Membre à l'essai
    Homme Profil pro
    Fonctionnaire
    Inscrit en
    Février 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Fonctionnaire

    Informations forums :
    Inscription : Février 2017
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Merc-L,
    La pour moi c'est du chinoi, je suis vraiment débutant en VBA

    CaptainMeta,
    J'ai donc créé l'userform avec avec le bouton qui l'ouvre et qui le ferme, par contre impossible de mettre ou comprendre quoi mettre comme code dans userform.
    Voici le code que j'obtiens de la macro en l'enregistrent comme vous m'avez dit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Recherche()
    '
    ' Recherche Macro
    '
     
    '
    End Sub


    Et voici le code que j'ai pour le moment sur l'userform que j'ai trouvé
    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
    Sub EnTête()
        Dim i%, lbvis As Boolean
        If lbxPrest.RowSource <> "" Then
            lbvis = True
        Else
            lbvis = False
        End If
        For i = 1 To 3
            Controls("lbPr" & i).Visible = lbvis
        Next i
     
    End Sub
     
    Private Sub cbQuit_Click()
        Unload Me
    End Sub

  7. #7
    Membre à l'essai
    Homme Profil pro
    Fonctionnaire
    Inscrit en
    Février 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Fonctionnaire

    Informations forums :
    Inscription : Février 2017
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    J'ai trouvé un code de recherche que j'ai réussi non sans mal à l'adapter a mon userform et qui me conviens bien mais je n'arrive pas à l'adapté à l'ensemble du classeur, il est seulement fait pour une recherche dans une liste A2:A24 et je ne sais pas comment faire pour qu'il recherche dans tout les onglets. j'ai essayé plusieurs code à taton mais forcement il faut être très précis dans ce genre de chose et donc rien ne marche avec mes essais

    ensuite il manque aussi le faite de cliquer sur le mot qu'il trouve et qu'il ouvre directement la feuille ou il est situé.

    Voici le code trouvé qui est d'origine:
    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
    Private Sub TextBox1_Change()
     
        Application.ScreenUpdating = False
     
        Range("A2:A24").Interior.ColorIndex = 2
        ListBox1.Clear
     
        If TextBox1 <> "" Then
            For ligne = 2 To 24
                If Cells(ligne, 1) Like "*" & TextBox1 & "*" Then
                    Cells(ligne, 1).Interior.ColorIndex = 43
                    ListBox1.AddItem Cells(ligne, 1)
                End If
            Next
        End If
     
    End Sub


    et le même que j'ai adapté a mon userform
    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
    Private Sub ComboBox1_Change()
     
        Application.ScreenUpdating = False
    Range("A2:A24").Interior.ColorIndex = 2
        ListView1.Clear
     
        If ComboBox1 <> "" Then
            For ligne = 2 To 24
                If Cells(ligne, 1) Like "*" & ComboBox1 & "*" Then
                    Cells(ligne, 1).Interior.ColorIndex = 43
                    ListView1.AddItem Cells(ligne, 1)
                End If
            Next
        End If
     
    End Sub
    Merci pour vos aides.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. 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
  2. Réponses: 4
    Dernier message: 21/11/2007, 22h27
  3. [MySQL] Moteur de recherche avec accents
    Par NiX31 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/01/2007, 12h27
  4. moteur de recherche avec requete sql
    Par hottnikks_79 dans le forum ASP
    Réponses: 4
    Dernier message: 03/08/2006, 03h58
  5. Réponses: 6
    Dernier message: 04/11/2005, 17h09

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