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 :

Recherche google places/details via 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 produit
    Inscrit en
    Janvier 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chef de produit
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2015
    Messages : 3
    Par défaut Recherche google places/details via excel
    Bonjour à tous,

    Tout d'abord, bonne année 2015 à tous les lecteurs/contributeurs.
    J'ouvre cette discussion car j'ai un problème très simple que je n'arrive pas à résoudre malgré lecture d'une multitude de discussions.

    mon objectif: mettre en colonne A des noms d'établissements - avec parfois un code postal ou une ville mentionné dans la cellule (aléatoire). Retrouver sur chaque ligne de la feuille le résultat de google place search avec les détails de ces établissements via google place details afin d'obtenir l'adresse exacte, la ville, la catégorisation, le numéro de téléphone etc...

    J'ai trouvé un bout de code sur la toile qui se rapproche de ça (meme si l'output est un messagebox) mais une erreur 91 variable objet ou variable bloc with non définie se produit à la ligne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    placeID = domDoc.SelectSingleNode("//result/place_id").Text
    Je ne sais pas résoudre cette erreur...
    http://stackoverflow.com/questions/2...cel-using-exce

    Pouvez vous m'aider ou m'orienter dans ma résolution de bug?
    Merci bcp
    Norpad

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 126
    Par défaut
    Salut

    Peux tu placer le code que tu as modifié en entier.

    Vu l'erreur, soit domDoc est vide, soit "//result/place_id" n'existe pas dans le document qui se trouve dans DomDoc.

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Candidat au Club
    Homme Profil pro
    chef de produit
    Inscrit en
    Janvier 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chef de produit
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2015
    Messages : 3
    Par défaut
    hello,

    Mon code est le suivant. Je veux d'abord testé le code du lien que j'ai mis dans mon message initial et, il ne semble pas marcher...
    Lorsque j'aurai trouvé la faille je l'adapterai pour que le code puisse aller chercher les infos en colonne A et les restituer sur les lignes correspondantes.

    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
    54
    55
    56
    57
    58
    59
    60
    Sub myTest()
        Dim xhrRequest As XMLHTTP60
        Dim domDoc As DOMDocument60
        Dim domDoc2 As DOMDocument60
        Dim placeID As String
        Dim query As String
        Dim nodes As IXMLDOMNodeList
        Dim node As IXMLDOMNode
    
        'you have to replace spaces with +
        query = "Cornell+Museum+of+Glass"
    
        'You must acquire a google api key and enter it here
        Dim googleKey As String
        googleKey = "ma clé google" 'your api key here
    
        'Send a "GET" request for place/textsearch
        Set xhrRequest = New XMLHTTP60
    
        xhrRequest.Open "GET", "https://maps.googleapis.com/maps/api/place/textsearch/xml?" & _
            "query=Cornell+Museum+of+Glass&key=" & googleKey, False
        xhrRequest.send
    
        'Save the response into a document
        Set domDoc = New DOMDocument60
        domDoc.LoadXML xhrRequest.responseText
    
        'Find the first node that is called "place_id" and is the child of the "result" node
        placeID = domDoc.SelectSingleNode("//result/place_id").Text 'CA BUG ICI ET JE NE SAIS PAS PQ
    
        'recycling objects (could just use new ones)
        Set domDoc = Nothing
        Set xhrRequest = Nothing
    
        'Send a "GET" request for place/details
        Set xhrRequest = New XMLHTTP60
        xhrRequest.Open "GET", "https://maps.googleapis.com/maps/api/place/details/xml?placeid=" & placeID & _
        "&key=" & googleKey, False
        xhrRequest.send
    
        'Save the response into a document
        Set domDoc = New DOMDocument60
        domDoc.LoadXML xhrRequest.responseText
    
        Dim output As String
        Dim s As String
    
        'hacky way to get postal code, you might want to rewrite this after learning more
        Set nodes = domDoc.SelectNodes("//result/address_component/type")
        For Each node In nodes
            s = node.Text
            If s = "postal_code" Then
                'this is bad, you should search for "long_name", what i did here was assume that "long_name was the first child"
                output = vbNewLine & "Postal Code: " & node.ParentNode.FirstChild.Text
            End If
        Next node
    
        'output
        MsgBox "Formatted Address: " & domDoc.SelectSingleNode("//result/formatted_address").Text & output
    End Sub

  4. #4
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 126
    Par défaut
    Salut

    Penses à utiliser les balises code (sélectionne le code et clique sur le bouton # dans l'éditeur). Quand tu mettras ton code dans des balises code, ne cherche pas à mettre en gras ou en couleur une partie du code, ça fait planter la coloration syntaxique.

    Ton problème est sans doute lié à la clé googleapi, une fois la requête faite si tu regarde le contenu la page te dit "REQUEST_DENIED The provided API key is invalid."
    Il faut modifier un peu ton code pour le voir facilement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    'Save the response into a document
    Set domDoc = New DOMDocument60
    domDoc.LoadXML xhrRequest.responseText
    domDoc.Save "e:\data.html" 'à adapter
    'Find the first node that is called "place_id" and is the child of the "result" node
    placeID = domDoc.SelectSingleNode("//result/place_id").Text 'CA BUG ICI ET JE NE SAIS PAS PQ
    Cette ligne aussi est à modifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhrRequest.Open "GET", "https://maps.googleapis.com/maps/api/place/textsearch/xml?" & "query=" & query & "key=" & googleKey, False
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  5. #5
    Candidat au Club
    Homme Profil pro
    chef de produit
    Inscrit en
    Janvier 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : chef de produit
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Janvier 2015
    Messages : 3
    Par défaut
    merci Qwaz. J'avance petite à petit. J'ai réglé le problème de ma clé google.
    lorsque je tape l'adresse url suivante dans firefox, j'accède bien à la page avec toutes les infos google places.
    https://maps.googleapis.com/maps/api/place/textsearch/xml?" & "query=" & query & "key=" & googleKey
    cependant, j'ai la mention "Aucune information de style ne semble associée à ce fichier XML. L'arbre du document est affiché ci-dessous."

    J'ai par contre un nouveau bug au niveau des lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    xhrRequest.Open "GET", "https://maps.googleapis.com/maps/api/place/textsearch/xml?" & "query=" & query & "key=" & googleKey, False
    xhrRequest.send
    l'erreur est "erreur d'exécution '-2146697211 (800c0005) Le système ne trouve pas la ressource spécifiée"
    est ce lié à la mention "Aucune information de style ne semble associée à ce fichier XML. L'arbre du document est affiché ci-dessous."?

    Je suis très preneur de vos idées.
    Merci bcp,
    Norpad

Discussions similaires

  1. Recherche google via script python
    Par rvbp13 dans le forum Réseau/Web
    Réponses: 4
    Dernier message: 31/10/2010, 21h30
  2. [Toutes versions] Recherche google de masse à partir d'une feuille excel automatisé
    Par thirdeye dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 19/08/2010, 09h07
  3. Réponses: 0
    Dernier message: 03/06/2010, 10h56
  4. Résultats de recherche Google détaillés : Comment faire ?
    Par Mr N. dans le forum Référencement
    Réponses: 6
    Dernier message: 14/11/2006, 15h11

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