VBA: assainir lien URL des caractères spéciaux

Avec l'utilisation de plus en plus répandue des "applications web", des API et du SharePoint, vous avez probablement déjà rencontré le problème d'un chemin de fichier (URL) qui ne fonctionnait pas à cause des espaces ou caractères spéciaux qu'il contenait. La fonction qui suit permet d'assainir lien URL en remplaçant tous les caractères spéciaux par les "codes URL" (le "percent-encoding").

VBA: supprimer les caractères spéciaux d'une adresse URL

Je ne vais pas lister tous les caractères spéciaux ici dans le texte, vous les trouverez directement dans le code VBA de la fonction. Mais à titre d'exemple, on parle des: , ," " (espace), ~, ç, ' etc.

L'exemple de la situation où ce code pourra bien vous servir: télécharger un fichier sur Internet avec VBA . Cette fonction-là ne va pas fonctionner si le URL contient des caractères spéciaux… Par contre vous pouvez résoudre ce problème grâce à la fonction VBA qui suit…

Fonction VBA pour assainir lien URL (percent-encoding en VBA)

La fonction qui suit est prête à l'emploi. Il vous suffit de la copier/coller dans votre projet VBA.

Elle utilise un argument: le lien URL à nettoyer (une valeur de type String). Le résultat retourné est l'adresse URL où tous les caractères spéciaux ont été remplacés par les codes URL. Elle fonctionnera donc à tous les coups…

Voici donc le code de la fonction:

 

Et voici un exemple d'utilisation dans une procédure VBA:

 

Dans cette exemple, on veut rendre utilisable l'adresse URL:
https://www.monsite.fr/fichiers/L'aperçu de consommation des oranges à Orléans.pdf

Le résultat que la fonction va retourner sera:
<span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"></span>https://www.monsite.fr/fichiers/L%27aper%E7u%20de%20consommation%20des%20oranges%20%E0%20Orl%E9ans.pdf<span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_end"></span>

Pour rappel: attention aux guillemets! Si votre URL contient des guillemets, vous devez d'abord ajuster ce URL car VBA ne peut pas travailler avec de simple guillemets.  Exemple: l'adresse https://www.monsite.fr/fichiers/"Mémoires".docx devra être transformée en https://www.monsite.fr/fichiers/""Mémoires"".docx pour que la fonction de nettoyage puisse reconnaître les guillemets dans le URL.

Conclusion

Grâce à cette fonction VBA, vous pourrez travailler plus facilement et de manière plus sûre avec les fichiers se trouvant dans le cloud, sur le SharePoint ou vous connecter à une API.

D'autres Codes sources VBA qui pourraient vous intéresser!

 

Pour aller plus loin en VBA…

Et voici encore quelques autres articles pratiques pour vous faciliter la vie:

 

Laissez un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *