XL 2019 IE.navigate "https://www.google.com/maps"

escouger

XLDnaute Occasionnel
Bonjour,
J'ai un code qui marchait bien et que ne fonctionne plus depuis quelques temps.
Il semble que ce soit lié à Internet Explorer et/ou à Microsoft Edge qui aurait changé de leur côté?

Le but est de pré-remplir les champs pour Google maps afin qu'il affiche la carte.
Je reçois maintenant le message (voir piece jointe) me demandant d'utiliser Microsoft Edge....mais je suppose qu'avec EDGE b je dois modifier mon code....
Merci de m'aider à trouver le moyen de dépasser ce souci que j'ai dans 2 tableurs qui n'ont rien à voir entre eux.

Voici ce code
Option Explicit

Sub map()
Dim w00 As Integer
Dim w10 As Integer
w00 = Selection.Rows.Count
If w00 > 1 Then
MsgBox ("Attention, une seule ligne doit être sélectionnée. Seule la première sera considérée")
End If
w00 = Range("NB_adh1") + 6

w10 = ActiveCell.Row
If w10 < 7 Or w10 > w00 Then
MsgBox ("Attention, la(es) ligne(s) sélectionnée(s) est(sont) hors du cadre des adhérents")
GoTo finmap
End If

'

'Déclaration des variables
Dim IE As New InternetExplorer
Dim IEDoc As HTMLDocument
Dim InputGoogleZoneTexte As HTMLInputElement
Dim InputGoogleBouton As HTMLInputElement



'Chargement d'une page Web Google
IE.navigate "https://www.google.com/maps"

'Affichage de la fenêtre IE
IE.Visible = True

'On attend le chargement complet de la page
WaitIE IE

'On pointe le membre Document
Set IEDoc = IE.document

'On pointe notre Zone de texte
Set InputGoogleZoneTexte = IEDoc.all("q")
'

Dim zontxt As String
Dim zonadr1 As String
Dim zonadr2 As String
Dim zonadr3 As String
Dim zonadr4 As String
Dim zonadr5 As String

zonadr1 = "36"
zonadr2 = "RUE"
zonadr3 = "DU HAUT BARR"
zonadr4 = "67700"
zonadr5 = "SAVERNE"
zontxt = Range(zonadr1) & " " & Range(zonadr2) & " " & Range(zonadr3) & " " & Range(zonadr4) & " " & Range(zonadr5) & " " & "France"

'On définit le texte que l'on souhaite placer à l'intérieur
InputGoogleZoneTexte.Value = zontxt


Set InputGoogleBouton = IEDoc.all("searchbox-searchbutton")
'Simuler un clic
InputGoogleBouton.Click
'searchbox-searchbutton




'On attend la fin de la recherche
WaitIE IE

'On libère les variables
Set IE = Nothing
Set IEDoc = Nothing

'On simule l'appui sur le bouton Entrée
SendKeys "{ENTER}"


SendKeys "{NUMLOCK}"

'
finmap:



End Sub
Sub WaitIE(IE As InternetExplorer)
'On boucle tant que la page n'est pas totalement chargée
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
End Sub
 

Pièces jointes

  • Capture.PNG
    Capture.PNG
    25.4 KB · Affichages: 21

escouger

XLDnaute Occasionnel
J'ai modifié le code envoyé précédemment pour forcer les valeurs de W00 et W10 pour que les tests soient possible. (Voir ces lignes en GRAS)

Bonjour,
J'ai un code qui marchait bien et que ne fonctionne plus depuis quelques temps.
Il semble que ce soit lié à Internet Explorer et/ou à Microsoft Edge qui aurait changé de leur côté?

Le but est de pré-remplir les champs pour Google maps afin qu'il affiche la carte.
Je reçois maintenant le message (voir piece jointe) me demandant d'utiliser Microsoft Edge....mais je suppose qu'avec EDGE b je dois modifier mon code....
Merci de m'aider à trouver le moyen de dépasser ce souci que j'ai dans 2 tableurs qui n'ont rien à voir entre eux.

Voici ce code
Option Explicit

Sub map()
Dim w00 As Integer
Dim w10 As Integer
w00 = 1

If w00 > 1 Then
MsgBox ("Attention, une seule ligne doit être sélectionnée. Seule la première sera considérée")
End If
w00 = 10

w10 = 8

If w10 < 7 Or w10 > w00 Then
MsgBox ("Attention, la(es) ligne(s) sélectionnée(s) est(sont) hors du cadre des adhérents")
GoTo finmap
End If

'

'Déclaration des variables
Dim IE As New InternetExplorer
Dim IEDoc As HTMLDocument
Dim InputGoogleZoneTexte As HTMLInputElement
Dim InputGoogleBouton As HTMLInputElement



'Chargement d'une page Web Google
IE.navigate "https://www.google.com/maps"

'Affichage de la fenêtre IE
IE.Visible = True

'On attend le chargement complet de la page
WaitIE IE

'On pointe le membre Document
Set IEDoc = IE.document

'On pointe notre Zone de texte
Set InputGoogleZoneTexte = IEDoc.all("q")
'

Dim zontxt As String
Dim zonadr1 As String
Dim zonadr2 As String
Dim zonadr3 As String
Dim zonadr4 As String
Dim zonadr5 As String

zonadr1 = "36"
zonadr2 = "RUE"
zonadr3 = "DU HAUT BARR"
zonadr4 = "67700"
zonadr5 = "SAVERNE"
zontxt = Range(zonadr1) & " " & Range(zonadr2) & " " & Range(zonadr3) & " " & Range(zonadr4) & " " & Range(zonadr5) & " " & "France"

'On définit le texte que l'on souhaite placer à l'intérieur
InputGoogleZoneTexte.Value = zontxt


Set InputGoogleBouton = IEDoc.all("searchbox-searchbutton")
'Simuler un clic
InputGoogleBouton.Click
'searchbox-searchbutton




'On attend la fin de la recherche
WaitIE IE

'On libère les variables
Set IE = Nothing
Set IEDoc = Nothing

'On simule l'appui sur le bouton Entrée
SendKeys "{ENTER}"


SendKeys "{NUMLOCK}"

'
finmap:



End Sub
Sub WaitIE(IE As InternetExplorer)
'On boucle tant que la page n'est pas totalement chargée
Do Until IE.readyState = READYSTATE_COMPLETE
DoEvents
Loop
End Sub
 

escouger

XLDnaute Occasionnel
J'ai trouvé la réponse à ma question dans le tuto suivant
Merci

voir le code ci-dessous:
Sub VBIEGoogleMAP()
'

Dim IE As New InternetExplorer
Dim IEDoc As HTMLDocument
Dim InputGoogleZoneTexte As String
Dim InputGoogleBouton As HTMLInputElement
Dim w00 As Integer
Dim w10 As Integer

w00 = Selection.Rows.Count
If w00 > 1 Then
MsgBox ("Attention, une seule ligne doit être sélectionnée. Seule la première sera considérée")
End If

w10 = ActiveCell.Row
'On définit le texte que l'on souhaite placer à l'intérieur
Dim zontxt As String
Dim zonadr1 As String
Dim zonadr2 As String 'N°
Dim zonadr3 As String 'rue
Dim zonadr4 As String 'cp
Dim zonadr5 As String 'ville


zonadr2 = "H" & w10 'numéro
zonadr3 = "I" & w10 'rue
zonadr4 = "J" & w10 'cp
zonadr5 = "K" & w10 'ville
zontxt = "https://www.google.fr/maps/place/" & Range(zonadr2) & " " & Range(zonadr3) & " " & Range(zonadr4) & " " & Range(zonadr5) & " " & "France"

'On définit le texte que l'on souhaite placer à l'intérieur

'InputGoogleZoneTexte.Value = zontxt

'---------------------------------------------------
Set IE = CreateObject("internetexplorer.application")
IE.Navigate2 zontxt
IE.Visible = True
'---------------------------------------------------
'On attend la fin de la recherche
WaitIE IE

'On libère les variables
Set IE = Nothing
Set IEDoc = Nothing

'On simule l'appui sur le bouton Entrée
SendKeys "{ENTER}"
SendKeys "{NUMLOCK}"
' SendKeys "{F4}"

End Sub
 

escouger

XLDnaute Occasionnel
Bonjour,
Je croyais avoir trouvé, car cela marchait mardi dernier avec le code indiqué et en suivant les indications du tuto.
J'utilise excel 2019 sur un PC 64 bits sous W10 à jour.
Aujourd'hui cela ne fonctionne plus!
Je reçois un message "Le serveur distant n'existe pas ou n'est pas disponible".
(Erreur d'exécution N° 462)
J'ai tenté de changer de navigateur par defaut (Edge, Chrome, Chromium) mais cela semble sans effet.
J'ai aussi vu passer le message suivant:
Microsoft Edge ne répond pas car une instance existante est exécutée avec des privilèges élevés. Voulez-vous redemarrer l'instance existante avec des privilèges normaux?Que je réponde Oui ou NON ne change rien.
J'ai vérifié aussi que les références "Micosoft HPML Object library" et "Micosoft Internet Controls" étaient bien cochées.
Merci de m'aider à élucider ce mystère.
Voici le code. Le blocage se situe sur la ligne
IE.Visible = True ======================> Blocage
 

Pièces jointes

  • test.xlsm
    49.2 KB · Affichages: 6

escouger

XLDnaute Occasionnel
Bonjour et Merci,

Ta réponse veut-elle dire qu'il n'y a plus aucune possibilité de programmer un accès (paramétré) au site internet "http://www.google.maps.com/" via du VBA ou est-ce un problème lié au navigateur ou à des évolutions du site Google.maps ?
Cà marchait encore il y a quelques mois chez moi, et sur un windows 10 à jour.
J'ai constaté "par hasard" que ce n'était plus vrai il y a 3 semaines environ.
 

patricktoulon

XLDnaute Barbatruc
3semaine!!!: ca fait bien plus longtemps que ça que ca a changé ca fait au moins 2 ans minimum 😅

donc non ca ne marchera plus ,je suis catégorique sur ce point

il y a encore les requête xmlhtttp sur Json avec bien sur une key que tu a préalablement acheté pour X téléchargement mais même la sachant que maps renouvelle sa page 36 fois l'ors d'une demande d'itinéraire
ta cle va marcher 10 fois tout au plus
bref c'est non quoi
pas en vba excel en tout cas peut être y a t il un autre moyen de récupérer cela avec une autre app dans un fichier texte ou xml et exploitation de ce fichier ensuite mais perso j'y compte pas trop
tu pourrais essayer avec chrome ou FF
avec utilisation en VBA de la librairie sélénium a la place le librairie IE
mais bon sélénium a toujours été bancale

j'ajouterais que sans clé ,maps n'autorise pas les requetes c'est donc du grabber sauvage
sujet bien évidement interdit sur XLD (voir et lire la charte)
;)
 

escouger

XLDnaute Occasionnel
OK Patrick Message bien reçu
J'ai contourné l'obstacle (je ne sais pas encore si ce sera pérenne dans le temps?) de la manière suivante.
Je compose un string avec l'URL de google.maps et colle derrière les éléments de l'adresse recherchée. Voir document attaché.
Je sélectionne un ligne de mon tableau contenant les éléments de l'adresse, et active une macro (clic sur la carte de France dans l'en-tête du document).
Google maps s'ouvre et affiche le point correspondant à l'adresse recherchée.
Cela suffit à mon bonheur aujourd'hui!
Merci d'avoir pris de ton temps pour regarder ce sujet.
 

Pièces jointes

  • test.xlsm
    48.8 KB · Affichages: 14

Membres actuellement en ligne

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa