Bonjour à tous,
Je suis actuellement en train de mettre en place une fonction permettant d'ouvrir directement une page Wikipedia concernant une Commune spécifique de ma bdd.
Curieusement, certaines pages s'ouvrent parfaitement, d'autres provoquent une erreur "6" ou 404, je suppose que parce qu’il y aurait des différences d'orthographe minimes entre ce qui existe sur le Wiki pointé et le contrôle contenant le nom de la commune et aussi le manque de timer... (Ou bien lorsque cette commune ne figure pas encore dans le Wiki...)
J'avais mis en place une concaténation avec le département de la commune tel que je l'observais dans l'URL de Wikipedia (nomcommune + "_(nom département)", car les wikis précisent souvent le département quand plusieurs communes ont le même nom...
Cela marchait aussi, sauf dans le cas où le wiki ne renseignait pas celui-ci, provoquant là aussi une erreur...
Doit on nécessairement utiliser l' API de Wikipedia pour créer depuis vba une URL valide à tous les coups ?. (j'ai l'impression que ce n'est pas approprié / nécessaire)
Existe-t'il des URL spécifiques à utiliser qui seraient mieux ou directement interprétées par Wikipedia ?
Je voudrais aussi :
1/ Rendre possible l'attente d'une redirection quand une erreur 404 est renvoyée
2/ Savoir si l'on peut envoyer des strings transformées en UTF-8 ou du genre pour éviter les erreurs (et que Wikipedia saura les interpréter / corriger)
3/ Pouvoir retomber sur une page de résultats ou page principale Wiki dont le champ de recherche serait automatiquement rempli avec ce qu'il y a dans le controle de formulaire au cas ou aucun résultat soit retourné avec l'URL provenant de VBA.
Quelle serait votre approche ?
Merci d'avance pour vos réponses
Voici une ébauche de code :
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 Public Function OuvrirWikipediaCommune(ctl As Control) Dim strLink As String Dim ctlTxt As String Dim departement As String On Error GoTo gestionerreur ctl.SetFocus ctlTxt = ctl.Text strLink = "https://fr.wikipedia.org/wiki/" + ctlTxt Debug.Print strLink Application.FollowHyperlink strLink gestionerreur: If err.Number <> 0 Then If err.Number = 6 Then MsgBox "page introuvable" End If End If End Function
Partager