Fonction VBA pour récupérer l'URL d'une page web marche pas
Fermé
hamza-arif
Messages postés
11
Date d'inscription
vendredi 13 mai 2022
Statut
Membre
Dernière intervention
13 juin 2022
-
Modifié le 13 mai 2022 à 09:45
yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 - 16 mai 2022 à 14:21
yg_be Messages postés 23327 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 15 novembre 2024 - 16 mai 2022 à 14:21
5 réponses
yg_be
Messages postés
23327
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 novembre 2024
Ambassadeur
1 551
13 mai 2022 à 14:24
13 mai 2022 à 14:24
bonjour,
pour comprendre, tu dois tester ta fonction hors d'une feuille excel:
pour comprendre, tu dois tester ta fonction hors d'une feuille excel:
Private Sub tt() Dim result As String result = AdresseToCoordonnesGPS("url") Debug.Print result End Sub
hamza-arif
Messages postés
11
Date d'inscription
vendredi 13 mai 2022
Statut
Membre
Dernière intervention
13 juin 2022
13 mai 2022 à 17:29
13 mai 2022 à 17:29
j'avais trouvé ça sur un forum, mais effectivement si tu dis que ShellExecute() renvoie un nombre alors je ne suis pas cohérent (au passage j'ai pas trouvé bcp de docu sur cette commande en cherchant sur internet)
en fait, j'avais pensé à ShellExecute() pour ouvrir un autre navigateur que Internet-Explorer (navigateur par défaut utilisé dans vba)
pour utiliser internet explorer, je peux remplacer la ligne contenant le ShellExecute() par
le code final devient :
et quand je fais appel avec
l'erreur se trouve sur la ligne :
ps : ce code je l'ai trouvé ici : https://www.youtube.com/watch?v=DcIrj0U_8HM
en fait, j'avais pensé à ShellExecute() pour ouvrir un autre navigateur que Internet-Explorer (navigateur par défaut utilisé dans vba)
pour utiliser internet explorer, je peux remplacer la ligne contenant le ShellExecute() par
ShellExecute
le code final devient :
Function AdresseToCoordonnesGPS(URL As String)
Dim navigateur As Object
'Set navigateur = CreateObject("InternetExplorer.Application")
'navigateur = CreateObject("Shell.Application").ShellExecute("microsoft-edge:" & URL) '
navigateur = CreateObject("InternetExplorer.Application")
navigateur.navigate URL
navigateur.Visible = True
Do While navigateur.busy And navigateur.readyState <> 4
DoEvents
Loop
pause (3)
Dim redirection As String
redirection = navigateur.locationUrl
redirection = Right(redirection, Len(redirection) - InStr(redirection, "#"))
redirection = Right(redirection, Len(redirection) - InStr(redirection, "/"))
AdresseToCoordonnesGPS3 = redirection
'penser à fermer la fenêtre avec quand ça marche :
'navigateur.Quit
'Set navigateur = Nothing
End Function
Private Sub tt()
Dim result As String
result = AdresseToCoordonnesGPS("url")
Debug.Print result
End Sub
et quand je fais appel avec
Private Sub tt()
Dim result As String
result = AdresseToCoordonnesGPS("url")
Debug.Print result
End Sub
l'erreur se trouve sur la ligne :
navigateur = CreateObject("InternetExplorer.Application")
ps : ce code je l'ai trouvé ici : https://www.youtube.com/watch?v=DcIrj0U_8HM
yg_be
Messages postés
23327
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 novembre 2024
1 551
13 mai 2022 à 17:43
13 mai 2022 à 17:43
peux-tu spécifier le langage (basic) quand tu utilises les balises de code?
quand tu as une erreur, peux-tu donner le texte du message d'erreur?
je me demande si tu ne persistes pas à oublier
quand tu as une erreur, peux-tu donner le texte du message d'erreur?
je me demande si tu ne persistes pas à oublier
set.
hamza-arif
Messages postés
11
Date d'inscription
vendredi 13 mai 2022
Statut
Membre
Dernière intervention
13 juin 2022
16 mai 2022 à 11:55
16 mai 2022 à 11:55
là l'erreur vient de
le message d'erreur est :
redirection = navigateur.locationUrl
le message d'erreur est :
yg_be
Messages postés
23327
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 novembre 2024
Ambassadeur
1 551
16 mai 2022 à 12:06
16 mai 2022 à 12:06
Tu as vraiment testé en laissant
"url"? Pour que cela fonctionne, il faut mettre l'adresse d'un site.
hamza-arif
Messages postés
11
Date d'inscription
vendredi 13 mai 2022
Statut
Membre
Dernière intervention
13 juin 2022
16 mai 2022 à 12:37
16 mai 2022 à 12:37
oui punaise je suis débile, j'ai pas changé...
alors oui après changement, en appelant ma fonction AdresseToCoordonnesGPS3 dans le sub tt, j'ai bien l'ouverture de la page (j'ai testé url="google.com"), mais ça ne me renvoie pas le lien de la page que j'ai cherché, par "lien" j'entends que ça me renvoie l'adresse de la page recherché, pour l'exemple de Google, ça devrait renvoyer "https://www.google.com/" même si je sais bien qu'un sub n'envoie pas de retour.
ps : pour info, vu qu'IE commence à être obsolète, lorsque la page IE s'ouvre (tjrs avec url="google.com"), IE me renvoie que "Ce site web ne fonctionne pas avec Internet Explorer" et ouvre la page recherchée dans Edge directement, c'est pour éviter ce problème aussi que je voulais directement faire mes recherches dans Edge
alors oui après changement, en appelant ma fonction AdresseToCoordonnesGPS3 dans le sub tt, j'ai bien l'ouverture de la page (j'ai testé url="google.com"), mais ça ne me renvoie pas le lien de la page que j'ai cherché, par "lien" j'entends que ça me renvoie l'adresse de la page recherché, pour l'exemple de Google, ça devrait renvoyer "https://www.google.com/" même si je sais bien qu'un sub n'envoie pas de retour.
ps : pour info, vu qu'IE commence à être obsolète, lorsque la page IE s'ouvre (tjrs avec url="google.com"), IE me renvoie que "Ce site web ne fonctionne pas avec Internet Explorer" et ouvre la page recherchée dans Edge directement, c'est pour éviter ce problème aussi que je voulais directement faire mes recherches dans Edge
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
hamza-arif
Messages postés
11
Date d'inscription
vendredi 13 mai 2022
Statut
Membre
Dernière intervention
13 juin 2022
16 mai 2022 à 12:46
16 mai 2022 à 12:46
d'autre part, quand je teste ma fonction AdresseToCoordonnesGPS3 directement dans la feuille excel, je n'ai plus l'erreur "#VALEUR!", mais je n'ai toujours pas ce que je cherche.
par exemple, dans la colonne B2, j'ai posé = =AdresseToCoordonnesGPS3("https://www.openstreetmap.org/search?query="&A2)
où A2 = 5 rue victor Hugo 95140 garges-lès-gonesse
ce qui fait que URL = "https://www.openstreetmap.org/search?query=5 rue victor Hugo 95140 garges-lès-gonesse"
et ce la me renvoie juste "https://www.openstreetmap.org/search?query=5 rue victor Hugo 95140 garges-lès-gonesse"
au lieu de me renvoyer "https://www.openstreetmap.org/search?query=5%20rue%20victor%20Hugo%2095140%20garges-l%C3%A8s-gonesse#map=18/48.97210/2.38848"
lien dans lequel sont contenues les coordonnées gps, ce qui m'intéresse
j'espère que c'est à peu près clair comme demande
par exemple, dans la colonne B2, j'ai posé = =AdresseToCoordonnesGPS3("https://www.openstreetmap.org/search?query="&A2)
où A2 = 5 rue victor Hugo 95140 garges-lès-gonesse
ce qui fait que URL = "https://www.openstreetmap.org/search?query=5 rue victor Hugo 95140 garges-lès-gonesse"
et ce la me renvoie juste "https://www.openstreetmap.org/search?query=5 rue victor Hugo 95140 garges-lès-gonesse"
au lieu de me renvoyer "https://www.openstreetmap.org/search?query=5%20rue%20victor%20Hugo%2095140%20garges-l%C3%A8s-gonesse#map=18/48.97210/2.38848"
lien dans lequel sont contenues les coordonnées gps, ce qui m'intéresse
j'espère que c'est à peu près clair comme demande
yg_be
Messages postés
23327
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
15 novembre 2024
1 551
16 mai 2022 à 14:21
16 mai 2022 à 14:21
Je ne pense pas que par VBA, tu pourras obtenir l'url final affiché dans la zone d'adresse du navigateur.
Je suggère de chercher quelque chose que tu peux obtenir dans la page de réponse (visible dans la source de la page).
Je suggère de chercher quelque chose que tu peux obtenir dans la page de réponse (visible dans la source de la page).
Modifié le 13 mai 2022 à 16:08
J'ai testé ton macro, voici ce qu'il me renvoie :
en même temps il m'ouvre ma page d'accueil Edge...
j'ai cherché la référence de l'erreur sur des forums, y a plein de réponses différentes, j'ai essayé des choses mais sans succès.
Je sais pas si tu as trouvé la faille dans ma fonction et tu voulais que je la trouve par moi même ou c'était juste une piste.
Je continue mes recherches, même si ma tête commence à saturer, 3 jour consécutifs que je bosse dessus sans succès !
13 mai 2022 à 16:47
13 mai 2022 à 17:04
13 mai 2022 à 17:05
13 mai 2022 à 17:10
D'où t'est venue l'idée que tu obtiendrais un objet?