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 :

Ctrl F vers un autre document Excel [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Janvier 2016
    Messages : 11
    Par défaut Ctrl F vers un autre document Excel
    Bonjour,

    J'aimerais insérer dans une feuille Excel un lien qui ouvre un autre document Excel avec sa boite de dialogue "Ctrl+F" vers un mot prédéfini.

    Je crois qu'il existe déjà un moyen de faire un raccourci Ctrl+F vers un autre onglet au sein d'un même classeur (à l'aide de macros notamment), mais il s'agit ici de faire un lien vers un fichier distinct.

    Pourriez-vous m'aider ?

    Je suis sous Excel 2007.

    Merci beaucoup !

    Roland

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    As-tu quelques notions de VBA ?

  3. #3
    Membre habitué
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Janvier 2016
    Messages : 11
    Par défaut
    Vaguement. Mais je peux toujours me débrouiller ! En fait, je me doute qu'il va falloir passer par là

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Tu ne pourras pas faire de recherche sur un fichier qui n'est pas ouvert.
    Il faut donc commencer ta macro par un Workbook.Open avec le nom de ton fichier destination.

    Je ne suis pas sûr qu'il soit possible d'ouvrir la fenêtre de recherche avec VBA.
    Généralement, avec une macro, on lance plutôt directement la recherche.
    Ce qui permet, une fois l'information récupérée, de refermer le classeur source de manière transparente pour l'utilisateur.

    Pour t'orienter dans cette partie, il faudrait savoir plus précisément ce que tu cherches à obtenir comme information au final.

  5. #5
    Membre habitué
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Janvier 2016
    Messages : 11
    Par défaut
    D'accord pour le workbook. En faisant un codage automatique en enregistrant une macro il apparaît effectivement.

    En fait, en exécutant la macro dans un fichier A je voudrais voir s'ouvrir un fichier B avec une boite de dialogue "Rechercher et remplacer" affichant toutes les occurrences du mot recherché dans le fichier B.

    Par exemple, pour une donnée intitulée "ZEN" dans le fichier A, il y a un fichier de référence spécifique à cette donnée, le fichier B. En exécutant ma macro, en cliquant sur une cellule par exemple, je voudrais voir apparaître le fichier B et une boite de dialogue Ctrl+F qui m'indique toutes les occurrences du mot "ZEN" dans le fichier B.

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Roland2008 Voir le message
    Par exemple, pour une donnée intitulée "ZEN" dans le fichier A, il y a un fichier de référence spécifique à cette donnée, le fichier B. En exécutant ma macro, en cliquant sur une cellule par exemple, je voudrais voir apparaître le fichier B et une boite de dialogue Ctrl+F qui m'indique toutes les occurrences du mot "ZEN" dans le fichier B.
    Ne serait-il pas plus simple que la macro lance directement la recherche sur "ZEN" sans avoir à ouvrir la fenêtre de recherche ?
    En terme de codage, en tout cas, ce serait plus simple.

    Mais que cherche à obtenir l'opérateur lors de cette recherche ?

  7. #7
    Membre habitué
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Janvier 2016
    Messages : 11
    Par défaut
    Oui effectivement, l'ouverture de la boite de dialogue se fera en lançant la recherche. Je suppose donc qu'il ne faut que lancer la recherche pour qu'elle apparaisse. Je recherche donc une macro qui 1) Ouvre un document 2) Lance une recherche de type Ctrl+F au sein de ce document.

    L'opérateur souhaitera avoir une vision globale grâce à la fenêtre de dialogue de toutes les formes que peut prendre une donnée spécifique dans le fichier B : "ZEN_A", "ZEN_B", "ZENC_C", etc.

    Je sais pas si c plus clair ainsi

  8. #8
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Si la macro se limite à ouvrir un fichier et pointer une cellule par recherche, ça se fait en deux lignes (plus quelques déclarations).

    En supposant que le fichier source s'appelle XXX.xls (tu adapteras)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim MaRech As Range
    Set MaRech = ActiveCell
    Workbooks.Open "XXX.xls"
    Cells.Find(MaRech, LookIn:=xlValues, LookAt:=xlPart).Activate

  9. #9
    Membre habitué
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Janvier 2016
    Messages : 11
    Par défaut
    Alors j'ai essayé d'intégrer ta formule comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test_Essai()
    'Déclarations
    Dim MaRech As Range
    Set MaRech = ActiveCell
    Workbooks.Open Filename:= _
            "C:/ ... / Fichier.xlsx"
    Cells.Find(MaRech, LookIn:=xlValues, LookAt:=xlPart).Select
    End Sub

    Mais cela ne marche pas...



    Par contre, en fouillant un peu, j'ai trouvé une formule qui me correspond, qui ouvre un fichier "B", et qui ensuite fait un Ctrl+F pour chercher un mot prédéfini (ici "toto") :

    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
    Sub test_Excel_Lent()
    Range("L14").Select
        Workbooks.Open Filename:= _
            "C:/ ... / Fichier B.xlsx"
        ActiveWindow.Visible = False
        Windows("Fichier B.xlsx").Visible = True
    'Déclarations
    Dim Nom As String
    Nom = "Toto"
    SendKeys Nom
    SendKeys "{ENTER}"
    SendKeys "{DOWN}"
    SendKeys "{ENTER}"
    CommandBars("Edit").Controls.Item(14).Execute
    End Sub




    Par contre, la fenêtre qui s'ouvre est une fenêtre "rechercher" classique, et non une fenêtre "rechercher tout", celle qui s'affiche quand on clique sur le bouton"rechercher tout", et qui affiche alors toutes les occurrences du mot dans le fichier. Si vous voyez ce que je veux dire...

    La cerise sur le gâteau serait que la macro m'ouvre directement la boite de dialogue "Rechercher tout" sans qu'on ait à cliquer sur le bouton... Tu aurais une idée pour l'afficher ? Existe t-il une macro qui sélectionne directement telle ou telle option dans la boîte de dialogue ?

    Et je voudrais aussi sélectionner l'option "Rechercher dans tous le classeur" !

    Après avoir fait le tour des forums, je suis persuadé d'être le premier à poser une question si spécifique sur le CTRL+F...

  10. #10
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Jusqu'à preuve du contraire, l'enregistreur de macros devrait te donner un canevas de procédure.

    Jusqu'à preuve du contraire, en lisant dans l'aide de VBA Excel :

    Référence du développeur Excel
    Dialog, objet
    Cet objet représente une boîte de dialogue Microsoft Excel intégrée.
    La bibliothèque d'objets Visual Basic pour Microsoft Excel contient des constantes intégrées pour de nombreuses boîtes de dialogue intégrées. Chaque constante est constituée du préfixe « xlDialog » suivi du nom de la boîte de dialogue. Par exemple, la constante de la boîte de dialogue Affecter un nom est xlDialogApplyNames et la constante de la boîte de dialogue Chercher est xlDialogFindFile. Ces constantes appartiennent au type énuméré XlBuiltinDialog.


    Exemple


    Utilisez la méthode Dialogs(index), où index est une constante intégrée qui identifie la boîte de dialogue, pour renvoyer un seul objet Dialog. L'exemple suivant montre comment exécuter la boîte de dialogue Ouvrir intégrée (menu Fichier). La méthode Show renvoie True si Microsoft Excel réussit à ouvrir un fichier, False si l'utilisateur annule la boîte de dialogue.

    Visual Basic pour Applications
    dlgAnswer = Application.Dialogs(xlDialogOpen).Show
    Jusqu'à preuve di contraire, il y a une quantité industrielle de questions et de réponses sur le forum qui se terminent par une quantité industrielle de macros qui zigonnent un paquet d'affaires avec "Find"

  11. #11
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par clementmarcotte Voir le message
    Jusqu'à preuve du contraire, l'enregistreur de macros devrait te donner un canevas de procédure.
    Malheureusement, l'enregistreur de macro va proposer un code pour obtenir l'effet final de la boîte de dialogue et non l'ouverture de la boite de recherche elle-même.
    C'est à dire qu'il proposera un Cells.Find .
    Et c'est tant mieux parce que dans 99% des cas, c'est ce qui est souhaité.

    Par contre, merci pour les renseignements sur la méthode Dialogue. Moi non plus je ne connaissais pas et ça ouvre de nouvelles perspectives.

  12. #12
    Membre habitué
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Janvier 2016
    Messages : 11
    Par défaut
    J'ai trouvé ! En fait il suffit d'envoyer une série de commandes pour que la formule "clique" directement sur le bon bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SendKeys "{TAB 2}"
    SendKeys "{DOWN}"
    SendKeys "{ENTER}"
    SendKeys "{TAB 6}"
    SendKeys "{ENTER}"
    Ce qui donne :

    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
    Range("L14").Select
    Workbooks.Open Filename:= _
    "Chemin vers le fichier"
    ActiveWindow.Visible = False
    Windows("Nom du Fichier.xlsx").Visible = True
    'Déclarations
    Dim Nom As String
    Nom = "TOTO"
    SendKeys Nom
    SendKeys "{ENTER}"
    SendKeys "{DOWN}"
    SendKeys "{ENTER}"
    SendKeys "{TAB 2}"
    SendKeys "{DOWN}"
    SendKeys "{ENTER}"
    SendKeys "{TAB 6}"
    SendKeys "{ENTER}"
    CommandBars("Edit").Controls.Item(14).Execute
    End Sub

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/10/2015, 02h46
  2. Réponses: 2
    Dernier message: 03/03/2015, 16h36
  3. [PPT-2007] Posez votre question Signaler Enregistrer sous PDF
    Par leloup84 dans le forum Powerpoint
    Réponses: 0
    Dernier message: 14/06/2012, 14h00
  4. Réponses: 0
    Dernier message: 24/04/2012, 22h31
  5. Réponses: 1
    Dernier message: 26/07/2011, 13h52

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