Bonjour à tous
Je suis actuellement occupé à mettre à jour une application VBA Excel que j'ai développé et qui fait entre autres des requêtes vers des APIs et donc, des appels à des URL telles que https://monsite/api/clients (pour avoir un array avec tous mes clients) p.ex.
Le code VBA est fonctionnel depuis six mois. Tout baigne ... toutefois, je viens d'ajouter une protection HTTP sur les APIs : quand on accède à l'URL, un popup s'affiche pour demander un login et un mot de passe. Ce popup, c'est celui du navigateur car la protection en place est faite au travers d'une protection "HTTP Basic Authentication" (en terme Apache: j'ai mis un fichier .htpasswd dans mon projet PHP).
Et là, mon code ci-dessous ne fonctionne plus car il faut pouvoir transmettre à Excel le login et le mot de passe à utiliser.
Le code fonctionnel (avant protection):
Pour info, en VBA pur, je peux construire une requête HTTP GET, transmettre dans les headers de mon appel le login et le mot de passe et j'ai bien mon résultat attendu dans le "body" de la réponse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 With ActiveSheet.QueryTables.Add(Connection:="URL;https://UNE_URL_VALIDE", Destination:=Range("a1")) .BackgroundQuery = True .TablesOnlyFromHTML = True .Refresh BackgroundQuery:=False .SaveData = True End With
Le truc, c'est que j'aimerais continuer à utiliser la puissance des QueryTables d'Excel et je souhaiterai conserver mon code où j'utilise des QueryTables.
Mes premières lectures semblent indiquer que QueryTable ne gère pas l'authentication. Avez-vous une quelconque expérience à ce sujet ?
Merci à tous.
Partager