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 :

Formulaire de recherche par mots clés [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Avatar de Jsiorat
    Homme Profil pro
    RETRAITE
    Inscrit en
    Juillet 2005
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Juillet 2005
    Messages : 398
    Points : 169
    Points
    169
    Par défaut Formulaire de recherche par mots clés
    Bonjour à tous,
    J'ai un classeur qui comporte 10 feuilles ;
    Dans chaque feuille, j'ai une colonne (B) intitulée "Mots clés" ;
    Depuis la feuille 1, j'aimerai avoir un formulaire qui me permette de saisir UN mot clé d'après une liste déroulante, rechercher dans la colonne (B) de chacune des 10 feuilles toutes les lignes répondant à ce mot clé et les afficher par copier-coller dans une nouvelle feuille (feuille qui ne sera pas enregistrée à la fermeture d'Excel !).
    Existe-t-il une procédure ou une macro pour ce type d'action ?
    un grand merci pour vos réponses
    Être vieux, c'est être jeune depuis plus longtemps que les autres !

  2. #2
    Membre expérimenté Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 724
    Points : 1 454
    Points
    1 454
    Par défaut
    Bonjour, juste pour vous signaler qu'en bas de la page se trouvent des recherches et posts avec les mêmes thèmes que le votre.
    Voir ci-dessous les interventions de Jacques Boigontier
    https://www.developpez.net/forums/d1...es-formulaire/
    Cordialement
    On a deux vies, la deuxième commence quand on se rend compte qu'on n'en a qu'une.
    Confucius

  3. #3
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    Bonjour à toutes et à tous et bon début de semaine
    une piste
    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
    Sub Recxhrche()
    Dim Y As String
    Dim Plage As Range
    Dim Cel As Range
    Y = Application.InputBox("quelle est la valeur à chercher", "Valeur", Type:=2)
    Application.ScreenUpdating = False
    For i = 1 To Worksheets.Count
            If Worksheets(i).Name <> "RECAPITULATIF" Then
            Set Plage = Worksheets(i).Range("B2:B500") ' à adapter
            For Each Cel In Plage
                If Cel.Value = Y Then
                PA = Cel.Address
                MsgBox ("Cette valeur se trouve dans la feuille " & Worksheets(i).Name & "   cellule :" & PA)
                End If
            Next Cel
            End If
        Next i
    Application.ScreenUpdating = True
    End Sub
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  4. #4
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    (feuille qui ne sera pas enregistrée à la fermeture d'Excel !).
    Si j'ai compris tu cherche un outil pour consultation des informations ayant un critère à choisir par un combobox
    si c'est le cas il te faut un USF avec un combobox et listbox et inutile d’insérer une feuille sans l'enregistrer
    Voila un exemple à tester et revenir avec plus d'explication si c'est pas le cas
    BONNE JOURNÉE A TOUTES & A TOUS
    Fichiers attachés Fichiers attachés
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  5. #5
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Tout ceci reviens, en réalité, à filtrer chaque feuille du classeur en fonction d'un critère colonne B et de renvoyer les résultats des filtres dans une feuille créée antérieurement.

    Voir les tutoriels autofilter présents dans la rubrique contribuez de ce site ou dans les tutoriels VBA.
    Cordialement,
    Franck

  6. #6
    Membre habitué
    Avatar de Jsiorat
    Homme Profil pro
    RETRAITE
    Inscrit en
    Juillet 2005
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Juillet 2005
    Messages : 398
    Points : 169
    Points
    169
    Par défaut EXCELLENT !
    Citation Envoyé par BENNASR Voir le message
    Voila un exemple à tester et revenir avec plus d'explication si c'est pas le cas
    Bonsoir, et merci pour cet excellent test que j'ai repris.
    Un dernier petit conseil ... dans la sub ci-dessous, comment déclarer la dernière colonne (et uniquement celle-ci !) comme étant des liens hypertext pour atteindre d'un clic la cible ?

    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
    Private Sub CommandButton1_Click()
    Dim Y As String
    Dim plage As Range
    Dim Cel As Range
    Y = ComboBox1.Value
     
    Application.ScreenUpdating = False
    For k = 1 To Worksheets.Count
        If Worksheets(k).Name <> "MENU" Then
            Worksheets(k).Activate
            'MsgBox (Worksheets(k).Name)
            Set plage = Worksheets(k).Range("B3:B" & [B65536].End(xlUp).Row)
                For Each Cel In plage
                    If Cel.Value = Y Then
                        UserForm1.ListBox1.ColumnCount = 4
                        UserForm1.ListBox1.ColumnWidths = "50;70;100;100"
                        UserForm1.ListBox1.AddItem
                        UserForm1.ListBox1.Column(0, i) = Cel(1, 0)
                        UserForm1.ListBox1.Column(1, i) = Cel(1, 1)
                        UserForm1.ListBox1.Column(2, i) = Cel(1, 2)
                        UserForm1.ListBox1.Column(3, i) = Cel(1, 3)
                        i = i + 1
                     End If
                Next Cel
        End If
    Next k
    Worksheets("MENU").Activate
    Application.ScreenUpdating = True
     
    End Sub
    Je précise que je peux avoir plusieurs lignes de réponse dans la ListBox1.
    Nom : Capture.JPG
Affichages : 1406
Taille : 36,7 Ko

    encore merci !
    Être vieux, c'est être jeune depuis plus longtemps que les autres !

  7. #7
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    bonjour
    pour commencer je suis autodidacte et débutant VBA donc méfiez vous de mes propositions et à essayer sur une copie de ton travail
    pour aller ouvrir le lien qui se trouve dans à la 4ème colonne de la listbox essayer avec l’événement double clic (sur l'adresse souhaité) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    adresse = UserForm1.ListBox1.Column(3, i)
    Unload UserForm1
       Workbooks.Open adresse
    End Sub
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  8. #8
    Membre habitué
    Avatar de Jsiorat
    Homme Profil pro
    RETRAITE
    Inscrit en
    Juillet 2005
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Juillet 2005
    Messages : 398
    Points : 169
    Points
    169
    Par défaut
    Citation Envoyé par BENNASR Voir le message
    bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    adresse = UserForm1.ListBox1.Column(3, i)
    Unload UserForm1
       Workbooks.Open adresse
    End Sub
    C'est une bonne idée, mais p'tit souci :Nom : Capture 02.JPG
Affichages : 1309
Taille : 17,3 Ko
    Déclarer les types de fichier ? .doc, .docx, .pdf, etc.
    Être vieux, c'est être jeune depuis plus longtemps que les autres !

  9. #9
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    peut être avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    adresse = UserForm1.ListBox1.Column(3, i)
    Unload UserForm1
      Set WordApp = CreateObject("word.Application")
     WordApp.Visible = True
     WordApp.Documents.Open adresse
    End Sub
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  10. #10
    Membre habitué
    Avatar de Jsiorat
    Homme Profil pro
    RETRAITE
    Inscrit en
    Juillet 2005
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Juillet 2005
    Messages : 398
    Points : 169
    Points
    169
    Par défaut Ça fonctionne !
    Je me répète : EXCELLENT !
    Ça marche !
    Tout au moins pour les documents Word. Est-ce que tu connais les coordonnées Set pour les fichiers .PDF, .TXT et autres ?
    Est-ce qu'on ne pourrait pas remplacer WordApp par quelque chose comme OfficeApp (!!!) qui remplacerait toutes les applis de MsOffice ?
    Je suis encore plus débutant que toi !
    A partir d'Excel 2013, je conçois une GED perso. Grace à toi, le système de recherche est pratiquement au point !
    Être vieux, c'est être jeune depuis plus longtemps que les autres !

  11. #11
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 914
    Points : 5 121
    Points
    5 121
    Par défaut
    voir ce lien
    j'ai adapté ça peut être ça ouvre tous les fichiers
    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
    Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Dim adresse As String
    adresse = UserForm1.ListBox1.Column(3, i)
    Unload UserForm1
     
    On Error GoTo OuvertureFichierErreur
       Dim MonApplication As Object
       Dim MonFichier As String
       Set MonApplication = CreateObject("Shell.Application")
     
       MonFichier = adresse
       MonApplication.Open (adresse)
     
       Set MonApplication = Nothing
    Exit Sub
     
    OuvertureFichierErreur:
       Set MonApplication = Nothing
       MsgBox "Erreur lors de l'ouverture de fichier..."
     
    End Sub
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  12. #12
    Membre habitué
    Avatar de Jsiorat
    Homme Profil pro
    RETRAITE
    Inscrit en
    Juillet 2005
    Messages
    398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : RETRAITE

    Informations forums :
    Inscription : Juillet 2005
    Messages : 398
    Points : 169
    Points
    169
    Par défaut
    Citation Envoyé par BENNASR Voir le message
    voir ce lien[/CODE]
    Bonjour,
    j'ai récupéré le lien et je vais le lire.
    Voilà, maintenant tout fonctionne.
    Merci pour ton aide et j'ai appris pas mal de choses.
    Je vais pouvoir me coucher ce soir un peu plus instruit en VBA.
    JS
    Être vieux, c'est être jeune depuis plus longtemps que les autres !

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

Discussions similaires

  1. [XL-2013] réaliser des Recherches par Mots Clés dans un formulaire
    Par pat33bordeaux dans le forum Excel
    Réponses: 12
    Dernier message: 28/04/2018, 11h32
  2. Réponses: 33
    Dernier message: 22/08/2011, 14h33
  3. [MySQL] recherche par mots clés
    Par spartan dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 16/02/2006, 16h11
  4. [Tableaux] Moteur de recherche par mot clés
    Par Nee dans le forum Langage
    Réponses: 4
    Dernier message: 20/01/2006, 11h30
  5. Recherche par mots clés
    Par legillou dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 17/06/2005, 10h56

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