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 :

Pilotage application metier avec VBA Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Juillet 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2023
    Messages : 2
    Par défaut Pilotage application metier avec VBA Excel
    Bonjour,

    Je souhaiterai piloter une application métier avec Google Chrome via un code VBA Excel.
    Le but est de télécharger des exports (environ une centaine) chaque début de mois via une routine.

    Pourriez-vous m’aider à interagir avec Chrome ?

    L’application pourrait se trouver sous :
    http://widi.intra.mickey.fr/widi/logon.do

    Comment ajouter une information qui débute dans la cellule K13 du fichier Excel dans la cellule du programme en liaison avec le code ci-dessous :
    <input type="text" name="_ncpi" onchange="setHiddenValueNCPI(this)">

    Comment lancer la recherche suivant le code ci-dessous ?
    <input type="submit" name="lancer" value="Lancer - Search">


    Comment lancer la recherche suivant le code ci-dessous ?
    <img border="0" height="22" width="22" src="/dwi/images/i32_excel.gif">


    Comment lancer la recherche suivant le code ci-dessous ?
    <input onclick="javascript:selecAll()" value="Tout sélectionner " type="button">


    Comment lancer la recherche suivant le code ci-dessous ?
    <input onclick="javascript:exportExcel()" value="Export EXCEL" type="button">


    Comment lancer la recherche suivant le code ci-dessous ?
    <frame name="dwiMenuBody" src="MenuMount.do" scrolling="auto" frameborder="1">


    Merci d'avance pour votre aide,

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour Yannickos44

    Il n'est pas possible de gérer Chrome directement de VBA, il faut utiliser Selenium (que je ne connais pas)
    Certains le font à grand renfort de "SendKeys" mais ce n'est absolument pas viable à mes yeux.

    J'espère que ça pourra vous aiguiller

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

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 219
    Par défaut
    Hello,
    Citation Envoyé par BrunoM45 Voir le message
    Il n'est pas possible de gérer Chrome directement de VBA, il faut utiliser Selenium (que je ne connais pas)
    Maintenant il y a aussi Chromium Automation for VBA constitué de modules de classe VBA et qui permet de piloter les principaux navigateurs :
    This is a method to directly automate Chromium-based web browsers, such as Chrome, Edge, and Firefox, using VBA for Office applications by following the Chrome DevTools Protocol framework.
    This method enables direct automation with Chromium-based web browsers for VBA without the need for a third-party software like SeleniumBasic. The framework also includes many examples and useful functions added to the original repository while keeping the whole design as simple as possible to help you understand and get started quickly with deploying the CDP framework for your VBA solutions.
    For Demo
    Open CDP Framework.xlam and look for the module named "Demo" inside there.

    For Installation
    Download CDP Framework.xlam and open it.
    Copy CDPBrowser, CDPCore, CDPElement, CDPJConv classes over to your VBA project.
    Make sure your project has Microsoft Scripting Runtime reference.
    Le souci c'est que le site à piloter à l'air d'être privé (intranet) et dans ce cas on ne pourra pas t'aider pour piloter ce site.

    Voici un exemple avec des commentaires en français pour piloter google maps afin de trouver un itinéraire entre deux adresses :
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Public Function TrajetGoogleMaps(AdresseDépart As String, AdresseArrivée As String, _
                                     Optional CacherGoogleMaps As Boolean = False) As Long
    '-------------------------------------------------------------------------------
    ' Ouvre Google Maps sur le calcul du trajet des adresses passées en arguments.
    '-------------------------------------------------------------------------------
    Dim objBrowser As New CDPBrowser
    Dim listeTrajets As Collection
    Dim trajet As CDPElement
    Dim result
        On Error Resume Next
        'on lance MS EDGE
        objBrowser.start "edge", cleanActive:=True, reAttach:=True
        ' on peut cacher le navigateur
        If CacherGoogleMaps Then objBrowser.hide
        objBrowser.navigate ("https://www.google.fr/maps/dir/")
        objBrowser.wait till:="interactive"
        'envoi de l'adresse de départ dans sa zone de saisie dans la page
        objBrowser.getElementByXPath("//input[@aria-controls='sbsg50']").value = AdresseDépart
        'envoi de l'adresse de destination dans sa zone de saisie dans la page
        objBrowser.getElementByXPath("//input[@aria-controls='sbsg51']").value = AdresseArrivée
        'Clic sur le bouton qui correspond à  un trajet en voiture
        objBrowser.getElementByXPath("//button/img[@data-tooltip='Voiture']").click
        ' Attente des résultats affichage des différentes propositions
        objBrowser.getElementByXPath("//div[@data-trip-index]").onExist
        Set listeTrajets = objBrowser.getElementsByXPath("//div[@data-trip-index]")
        Debug.Print "========== Résultats =============="
        For Each trajet In listeTrajets
           Debug.Print trajet.innerText
           Debug.Print "========================"
        Next
        'Clic sur la section du premier résultat en attendant son apparition
        objBrowser.getElementByID("section-directions-trip-0").onExist.click
        'Récupération du texte qui donne le temps et le kilométrage du trajet en attendant son apparition
        result = objBrowser.getElementByXPath("//div[@class='TGDfee']").onExist.innerText
        Debug.Print "Premier trajet : " + result
        objBrowser.quit
        Set trajet = Nothing: Set listeTrajets = Nothing: Set objBrowser = Nothing
    End Function
     
    Sub TestTrajet()
    TrajetGoogleMaps "22 rue Cassette, 75006, Paris", "Bordeaux", False
    End Sub
    Par défaut quand utilise l'objet CDPBrowser des messages de debug sont affichés dans la fenêtre d'exécution du VBA et sont générés dans un fichier log qui se trouve dans un répertoire Logs à l'endroit où se trouve le classeur source :
    Exemple :
    ----------------------------------------------------------------------------------------------------
    New Browser Session Started
    ----------------------------------------------------------------------------------------------------
    07:15:07 | BRID575 | cleanUpSessions completed and previous CdpSessionID removed
    07:15:07 | BRID575 | setCrashStateNormal completed
    07:15:07 | BRID575 | CDPCore initialized successfully
    07:15:07 | BRID575 | Now looking for the browser window
    07:15:07 | BRID575 | Now attaching CDP pipes to the browser session
    07:15:07 | BRID575 | Successfully attached to Session ID C8A5B5F7E850B993432E1CB4E59A03F7
    Si on ne veut pas avoir ce comportement, c'est à dire ne pas avoir les messages de debug, faire ceci dans le module de classe CDPBrowser:
    Au début du code de la classe ajouter une constante. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Private Const DebugMode = False
    et dans ce module au début de la fonction printMsg ajouter ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      Public Function printMsg(strMsg As String, Optional isHeader As Boolean = False, Optional doRaiseError As Boolean = False)
     
     
        If Not DebugMode Then Exit Function
    On peut aussi modifier cette fonction de façon à n'avoir par exemple que les messages dans le fichier de log.


    Ami calmant, J.P

  4. #4
    Invité
    Invité(e)
    Par défaut
    Merci JP c'est bon à savoir aussi mais "Selenium" à l'air plus à jour.

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

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 219
    Par défaut
    Citation Envoyé par BrunoM45 Voir le message
    Merci JP c'est bon à savoir aussi mais "Selenium" à l'air plus à jour.
    pas seleniumbasic qui n'a pas été mis à jour depuis 8 ans
    L'avantage majeur de Chromium Automation for VBA c'est qu'il n'a pas besoin de drivers comme selenium (à télécharger pour chaque type de navigateur et à mettre aussi à jour suivant la version du navigateur installée sur son pc)

  6. #6
    Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Juillet 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2023
    Messages : 2
    Par défaut Initialisation ouverture Edge
    Bonjour,

    je suis novice dans la communauté et merci pour vos retours.

    Comment puis ouvrir une nouvelle page Edge avec Excel (via VBA).
    C'est une application métier donc non accessible mais en partant d'un exemple.

    Merci d'avance,
    Cordialement,

Discussions similaires

  1. envoi mail outlook avec vba excel
    Par momolamoto dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/09/2010, 10h45
  2. Contrôle d'un document Word avec VBA Excel
    Par wsl1912 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 03/01/2008, 10h06
  3. manipulation des fichiers et dossiers avec VBA excel
    Par GBAGO dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/07/2007, 23h30
  4. lien internet avec VBA EXCEL
    Par casefayere dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/07/2007, 10h40
  5. Images avec VBA Excel
    Par dorschner dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/09/2006, 23h28

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