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 :

Piloter Firefox depuis Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut Piloter Firefox depuis Excel
    Bonjour,
    Je souhaiterais:

    -1:

    Activer la fenêtre Firefox sur l'onglet en cours;

    -2:

    Remplir une zone de recherche avec une donnée venant d'une cellule sans utiliser sendkeys tab, il y en aurait trop.
    Si je pouvais trouver son nom dans la page et la remplir automatiquement, ce serait parfait


    Serait-ce possible?


    MERCI BEAUCOUP POUR UN COUP DE MAIN!!!!!!

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 472
    Par défaut
    Hello,

    Les navigateurs moderne se pilotent via Selenium WebDriver

    Alternativement, il y a le CDP framework (https://github.com/longvh211/Chromiu...th-CDP-for-VBA), mais ne fonctionne que pour Edge et Chrome.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut
    Impossible d'installer quoi que ce soit sur mon ordinateur c'est un ordinateur professionnel

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 472
    Par défaut
    Il ne te reste que CDP Framework (à ma connaissance, tous les PC Windows sont équipés de Ms Edge).

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut
    Alors là il faudrait m'en dire plus je ne connais absolument pas

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 472
    Par défaut
    1) Tu télécharge le framework: https://github.com/longvh211/Chromiu...leases/tag/2.7
    (c'est une classeur de macro complémentaires xlam contenu dans un zip).

    2) Tu t'assures que le classeur est bien actif dans les compléments.
    Alternativement, tu copie / colle les modules dans un nouveau classeur.

    3) Tu actives la référence Microsoft Scripting Runtime.

    4) Tu regarde les exemples livrés dans les sources, tu fais tes propres expérimentation (il n'y a pas vraiment de tutoriel).

    Un petit exemple avec Chrome, Effectuer la recherche "Final Fantasy" sur google:
    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
    Option Explicit
     
    Public Sub test()
            '// instanciation
        Dim Browser  As CDPBrowser
        Set Browser = New CDPBrowser
     
            '// demarre le navigateur Chrome
        Browser.start "chrome", cleanActive:=False
     
            '// Navigue vers la page de Google
        Browser.navigate "https://www.google.fr", isComplete
     
            '// Saisie de la recherche
        Dim TextInput As CDPElement
        Set TextInput = Browser.getElementByXPath("//textarea[@class='gLFyf']")
        TextInput.value = "Final Fantasy"
     
            '// Click sur le bouton "Recherche Google"
        Dim SearchButton As CDPElement
        Set SearchButton = Browser.getElementByXPath("//input[@value='Recherche Google']")
        SearchButton.click isComplete
     
            '// Refermer le navigateur quand on en a plus besoin.
        Browser.quit
    End Sub
    La clef est de d'obtenir les éléments TML avec qui tu veux interagir, le framework proposes plusieurs méthode pour sélectionner / naviguer entre les éléments (les méthodes get*).
    Il faudra peut-être que tu te documentes sur XPath pour sélectionner ces derniers.

    Ps: Avec Edge, c'est très tâtillon (j'essuie beaucoup de plantages), n'hésite pas à persévérer.

  7. #7
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 192
    Par défaut
    Hello,
    pour CDP il y a une contribution ici : Pilotage de navigateurs Web (Chrome, Edge, Firefox) en VBA en utilisant le protocole CDP

    bien que Firefox soit annoncé ce n'est pas le cas, il n'est pas géré et Firefox va abandonner le protocole CDP.
    Il y a toujours la possibilité d'utiliser Internet explorer qui est toujours présent dans windows ( en mode non accessible comme application mais utilisable en VBA). il y a un tutoriel ici
    Attention cela ne marchera que sur certains sites car internet explorer commence à dater.
    Ami calmant, J.P

  8. #8
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut
    Avec Firefox, c'est OK?

    Première ligne,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Browser As CDPBrowser
    :

    Erreur de compilation: type défini par l'utilisateur non défini.


    J'ai téléchargé le fichier, extrait le xlam dans mon dossier dévolu et activé le xlam,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Microsoft Scripting Runtime
    est coché.

    J'ai copier coller ton code dans un module.

  9. #9
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut
    Je n'ai pas le choix du navigateur

  10. #10
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut
    Je n'avais pas copié les modules class, c'est fait, donc ça c'est débloqué

  11. #11
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 192
    Par défaut
    tu n'as pas edge sur ton PC ?

  12. #12
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut
    Alors ça fonctionne très bien, sauf pour lancer la recherche sur le site, j'ai le bouton "Rechercher", quand je le sélectionne avec l'inspecteur de EDGE:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <button class="side-button">Rechercher</button>
    mais après, pour l'activer, rien ne se passe.


    J'ai tenté:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            '// Click sur le bouton "Recherche Google"
        Dim SearchButton As CDPElement
        Set SearchButton = Browser.getElementByXPath("//input[@value='Rechercher']")
        SearchButton.click isComplete
    Sans succès

  13. #13
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut
    Dans la fenêtre d'exécution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    14:56:14 | BRID962 | Script executed: varID005624 = document.evaluate("//input[@value='Rechercher']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue | Returned: null
    14:56:14 | BRID962 | Script executed: varID005624.click() | Returned: TypeError: Cannot read properties of null (reading 'click')

  14. #14
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 192
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 192
    Par défaut
    Regarde l'exemple de deedolith c'est pas button mais input et c'est Recherche Google

  15. #15
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut
    Oui, j'ai corrigé et retenté, rien

  16. #16
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut
    Alors si, il finit par le faire mais il faut bien deux longues secondes mini

  17. #17
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut
    Y aurait-il un moyen, si ce n'est d'accélérer, d'indiquer qu'Excel "tourne" à l'utilisateur?

  18. #18
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut
    Je mets résolu sans aucun problème sur la partie principal du problème!!!!!

  19. #19
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut
    Est-il possible d'ouvrir un msgbox par exemple en cas de bouton non trouvé?

  20. #20
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 1 150
    Par défaut
    De façon aléatoire la page qui s'ouvre est blank avec erreur sur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Browser.start "edge", cleanActive:=False
    erreur: Erreur d'exécution '900': attachtosession error at line 1: "Fichier introuvable"

    Fenêtre d'exécution:

    15:47:24 | BRID706 | Reattachment aborted as reAttach=Vrai & isLive=Faux
    ----------------------------------------------------------------------------------------------------
    New Browser Session Started
    ----------------------------------------------------------------------------------------------------
    15:47:24 | BRID706 | setCrashStateNormal completed
    15:47:24 | BRID706 | CDPCore initialized successfully
    15:47:24 | BRID706 | sendMessage error at line 12: "Error PeekNamedPipe in readProcCDP."
    15:47:24 | BRID706 | strMessage used by sendMessage: {"method":"Target.setDiscoverTargets","params":{"discover":true}, "id":1}
    15:47:24 | BRID706 | Possible reasons: (1) the browser is not actually running (ie. call string failure); (2) the browser window was accidentally closed; (3) the CDP Pipe connection to the browser was cut-off somehow.
    15:47:24 | BRID706 | attachToSession error at line 1: "Fichier introuvable"
    15:47:24 | BRID706 | objAllMessages = {}
    15:47:24 | BRID706 | results =
    15:47:24 | BRID706 | results_ =
    15:47:24 | BRID706 | results__ =
    15:47:24 | BRID706 | results___ =
    15:47:24 | BRID706 | .start call string: "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe" --remote-debugging-pipe --enable-automation--homepage "about:blank"
    15:47:24 | BRID706 | ---------------------------------------------------
    15:47:24 | BRID706 | BRID706 Information
    15:47:24 | BRID706 | ---------------------------------------------------
    15:47:24 | BRID706 | Session ID | sessionID |
    15:47:24 | BRID706 | Last ID | lngLastID | 2
    15:47:24 | BRID706 | Window Handle | brHWnd | 0
    15:47:24 | BRID706 | Window ID | brWId |
    15:47:24 | BRID706 | Browser Type | brType | msedge.exe
    15:47:24 | BRID706 | Browser Ver | brVer |
    15:47:24 | BRID706 | Browser Path | brPath | C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe
    15:47:24 | BRID706 | Tab URL | brUrl |
    15:47:24 | BRID706 | Tab Title | brName |
    15:47:24 | BRID706 | Tab ID | targetID |
    15:47:24 | BRID706 | Core StdInWr | hStdInWr | 8072
    15:47:25 | BRID706 | Core StdOutRd | hStdOutRd | 17472
    15:47:25 | BRID706 | Core CDPInWr | hCDPInWr | 18572
    15:47:25 | BRID706 | Core CDPOutRd | hCDPOutRd | 18912
    15:47:25 | BRID706 | CDP Version | CDPVer | 2.7.4


    Aléatoire mais plus fréquent que la réussite....

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 5 12345 DernièreDernière

Discussions similaires

  1. Piloter SAS depuis Excel
    Par Lameth dans le forum SAS Base
    Réponses: 1
    Dernier message: 31/08/2009, 13h22
  2. piloter outlook depuis Excel avec VB
    Par PacoE dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/05/2008, 21h12
  3. piloter IE depuis excel: petit probème
    Par biggione dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/08/2006, 22h05
  4. piloter powerpoint depuis excel
    Par cocktails dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 28/07/2006, 09h42

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