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

VBA Access Discussion :

Communication entre vba access et edge


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 313
    Points : 73
    Points
    73
    Par défaut Communication entre vba access et edge
    Bonjour

    Voici un code que j'utilise pour envoyer un message whatsappweb depuis un code vba access !

    Le problème est que le code ouvre à chaque fois un nouvel onglet alors que j'aimerais que le code analyse si un onglet "whatsapp web " est déjà ouvrir et si c'est le cas qu'il utilise cet onglet et si non qu'il en crée un !

    D'avance merci

    Pascal

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Private Sub choix_message_Click()
    Dim Numero As String
        Dim Message As String
        Dim Edge As Object
        Dim WhatsAppWeb As String
        Dim EdgeWindow As Object
        Dim rs As DAO.Recordset
        Dim id As Long
        Dim Portable As String
        Dim optButton As OptionButton
        Dim optGroup As OptionGroup
        Dim db As DAO.Database
     
        id = Me.CurrentRecord 'obtenir l'ID de la ligne actuelle
     
        Set db = CurrentDb
        Set rs = db.OpenRecordset("SELECT [Tél portable] FROM R_Recherche_articles WHERE N°_Contrat=" & N°_Contrat)
        If Not rs.EOF Then
            Portable = rs.Fields("Tél portable").Value 'obtenir le numéro de téléphone correspondant à l'ID de la ligne actuelle
        End If
     
        rs.Close
        Set rs = Nothing
        Set db = Nothing
     
        ' Enlever les espaces et ajouter "41" au début du numéro
        Numero = "41" & Replace(Portable, " ", "")
     
        ' Récupérer le texte sélectionné dans la combobox
        Message = choix_message.Value
     
        ' Afficher le numéro de téléphone
        'MsgBox "Vous êtes sur le point d'envoyer un message à ce numéro : " & Numero, vbInformation, "Confirmation"
     
        ' Construire l'URL de WhatsApp Web
        WhatsAppWeb = "microsoft-edge:https://web.whatsapp.com/send?phone=" & Numero & "&text=" & Replace(Message, " ", "%20")
     
        Set Edge = CreateObject("Shell.Application")
       'Shell "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe -new-window " & WhatsAppWeb
       Shell "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe " & WhatsAppWeb
     
     
     
        ' Attendre que la fenêtre Edge soit active
        Do While EdgeWindow Is Nothing
            Set EdgeWindow = Edge.Windows().Item(Edge.Windows().count - 1)
            DoEvents
        Loop
     
        ' Envoyer le message en appuyant sur la touche "Entrée"
       ' EdgeWindow.Document.querySelector("div[contenteditable='true']").innerHTML = Message
       ' EdgeWindow.Document.querySelector("div[contenteditable='true']").focus
    End Sub

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 430
    Points : 20 014
    Points
    20 014
    Billets dans le blog
    67
    Par défaut
    Bonjour,

    Peut-être utiliser GetObject à la place de createobject :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set edge = GetObject([ pathname ], [ class ])
    Pour plus d'info :

    https://learn.microsoft.com/fr-fr/of...bject-function

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 313
    Points : 73
    Points
    73
    Par défaut
    Merci pour cette première répsonse, je vais un peu analyser ça car je ne suis pas très doué ;-)

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 313
    Points : 73
    Points
    73
    Par défaut
    Si quelqu'un est capable de me donner quelques infos supplémentaire merci car mes quelques tests pour l'instant ne sont pas très concluant ;-)

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 408
    Points : 2 052
    Points
    2 052
    Par défaut
    Le problème est que tu instancies un objet Shell, qui va lui même lancer Ms Edge.
    Mais l'objet Shell ne fait pas la passerelle entre Ms Access et Ms Edge (en clair, Ms Access ne peut communiquer avec Ms Edge via cette méthode).

    Si tu veux interagir avec Ms Edge, il te faut passer par Selenium Web Driver.

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 430
    Points : 20 014
    Points
    20 014
    Billets dans le blog
    67
    Par défaut
    Bonjour,

    Oui, apparemment on a pas le contrôle sur edge comme on pouvait l'avoir avant avec internet explorer.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 313
    Points : 73
    Points
    73
    Par défaut
    Oups alors j'ai l'impression que ça va se compliquer ;-)... ou alors est-il plus facile de le faire sur IE ? Mais est-ce que IE existera encore longtemps ?
    Merci afin que je parte dans la meilleure direction possible

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 408
    Points : 2 052
    Points
    2 052
    Par défaut
    Il y a des objets COM pour piloter IE, qui fonctionnent sans problème.
    Mais comme tu le dit, pour combien de temps encore ?

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 313
    Points : 73
    Points
    73
    Par défaut
    j'essaie avec selenium mais sans résultat... j'ai installé msedgedriver.exe qui correspond à ma version de edge !
    J'ai mis dans les références des outils visual basic "SeleniumWrapper Type library"

    Et pour faire un test, je lance ce code mais j'ai un message d'erreur : erreur d'execution ^-2146232832 (80131600)': Browser "edge" is not available

    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
    Private Sub Commande3_Click()
          ' Initialiser le pilote Selenium
        Dim driver As New SeleniumWrapper.WebDriver
        driver.Start "edge", "C:\webdriver\msedgedriver.exe"
     
        ' Accéder à une page web
        driver.Get "https://www.google.com/"
     
        ' Rechercher un élément sur la page (le champ de recherche Google)
     Dim searchBox As SeleniumWrapper.WebElement
        Set searchBox = driver.findElementById("lst-ib")
     
        ' Saisir du texte dans le champ de recherche
        searchBox.SendKeys "SeleniumWrapper"
     
        ' Cliquer sur le bouton de recherche Google
        searchBox.submit
     
        ' Attendre que la page de résultats de recherche soit chargée
        driver.Wait 5000
     
        ' Afficher le titre de la page (devrait être "SeleniumWrapper - Recherche Google")
        Debug.Print driver.Title
     
        ' Fermer le pilote Selenium
        driver.Stop
    End Sub
    Mais je n'y connais rien donc qu'est ce que je fais faux ?

    Merci

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 313
    Points : 73
    Points
    73
    Par défaut
    et je ne peux même pas utiliser IE car il n'accepte pas whatsappweb ..

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 313
    Points : 73
    Points
    73
    Par défaut
    Est-ce que quelqu'un a déjà essayé depuis un code vba accees de "communiquer" avec Edge ? si oui avec Selenium et si oui c'est volontiers que je prends des conseils car j'ai essayé pas mal de choses sans succès ¨!

    Merci

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 313
    Points : 73
    Points
    73
    Par défaut
    Je tente de relancer la discussion .. Merci

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 313
    Points : 73
    Points
    73
    Par défaut
    Est-ce que quelqu'un connait un spécialiste qui pourrait m'aider même contre rénumération...
    Merci
    Pascal

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 408
    Points : 2 052
    Points
    2 052
    Par défaut
    Si personne ne te répond, c'est que personne n'a la solution.

Discussions similaires

  1. Réponses: 0
    Dernier message: 17/02/2021, 11h08
  2. Réponses: 2
    Dernier message: 01/04/2016, 09h54
  3. [XL-2010] Communication entre VBA Excel et internet Explorer
    Par John81 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 06/03/2014, 23h14
  4. Réponses: 3
    Dernier message: 23/11/2012, 13h54
  5. Réponses: 5
    Dernier message: 28/07/2010, 16h24

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