VBA: Assainir Lien URL Des Caractères Spéciaux | Excel
Maybe your like
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").

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:
Function AssainirURL(MonURL As String) 'par Excel-Malin.com ( https://excel-malin.com ) On Error GoTo FonctionErreur Dim URLtemporaire As String URLtemporaire = MonURL URLtemporaire = Replace(URLtemporaire, "%", "%25") URLtemporaire = Replace(URLtemporaire, " ", "%20") URLtemporaire = Replace(URLtemporaire, """", "%22") URLtemporaire = Replace(URLtemporaire, "#", "%23") URLtemporaire = Replace(URLtemporaire, "$", "%24") URLtemporaire = Replace(URLtemporaire, "&", "%26") URLtemporaire = Replace(URLtemporaire, "'", "%27") URLtemporaire = Replace(URLtemporaire, "(", "%28") URLtemporaire = Replace(URLtemporaire, ")", "%29") URLtemporaire = Replace(URLtemporaire, "*", "%2A") URLtemporaire = Replace(URLtemporaire, "+", "%2B") URLtemporaire = Replace(URLtemporaire, ",", "%2C") URLtemporaire = Replace(URLtemporaire, ";", "%3B") URLtemporaire = Replace(URLtemporaire, "<", "%3C") URLtemporaire = Replace(URLtemporaire, "=", "%3D") URLtemporaire = Replace(URLtemporaire, ">", "%3E") URLtemporaire = Replace(URLtemporaire, "?", "%3F") URLtemporaire = Replace(URLtemporaire, "@", "%40") URLtemporaire = Replace(URLtemporaire, "[", "%5B") URLtemporaire = Replace(URLtemporaire, "]", "%5D") URLtemporaire = Replace(URLtemporaire, "^", "%5E") URLtemporaire = Replace(URLtemporaire, "`", "%60") URLtemporaire = Replace(URLtemporaire, "{", "%7B") URLtemporaire = Replace(URLtemporaire, "|", "%7C") URLtemporaire = Replace(URLtemporaire, "}", "%7D") URLtemporaire = Replace(URLtemporaire, "~", "%7E") URLtemporaire = Replace(URLtemporaire, "¢", "%A2") URLtemporaire = Replace(URLtemporaire, "£", "%A3") URLtemporaire = Replace(URLtemporaire, "¥", "%A5") URLtemporaire = Replace(URLtemporaire, "|", "%A6") URLtemporaire = Replace(URLtemporaire, "§", "%A7") URLtemporaire = Replace(URLtemporaire, "«", "%AB") URLtemporaire = Replace(URLtemporaire, "¬", "%AC") URLtemporaire = Replace(URLtemporaire, "¯", "%AD") URLtemporaire = Replace(URLtemporaire, "º", "%B0") URLtemporaire = Replace(URLtemporaire, "±", "%B1") URLtemporaire = Replace(URLtemporaire, "ª", "%B2") URLtemporaire = Replace(URLtemporaire, ",", "%B4") URLtemporaire = Replace(URLtemporaire, "µ", "%B5") URLtemporaire = Replace(URLtemporaire, "»", "%BB") URLtemporaire = Replace(URLtemporaire, "¼", "%BC") URLtemporaire = Replace(URLtemporaire, "½", "%BD") URLtemporaire = Replace(URLtemporaire, "¿", "%BF") URLtemporaire = Replace(URLtemporaire, "À", "%C0") URLtemporaire = Replace(URLtemporaire, "Á", "%C1") URLtemporaire = Replace(URLtemporaire, "Â", "%C2") URLtemporaire = Replace(URLtemporaire, "Ã", "%C3") URLtemporaire = Replace(URLtemporaire, "Ä", "%C4") URLtemporaire = Replace(URLtemporaire, "Å", "%C5") URLtemporaire = Replace(URLtemporaire, "Æ", "%C6") URLtemporaire = Replace(URLtemporaire, "Ç", "%C7") URLtemporaire = Replace(URLtemporaire, "È", "%C8") URLtemporaire = Replace(URLtemporaire, "É", "%C9") URLtemporaire = Replace(URLtemporaire, "Ê", "%CA") URLtemporaire = Replace(URLtemporaire, "Ë", "%CB") URLtemporaire = Replace(URLtemporaire, "Ì", "%CC") URLtemporaire = Replace(URLtemporaire, "Í", "%CD") URLtemporaire = Replace(URLtemporaire, "Î", "%CE") URLtemporaire = Replace(URLtemporaire, "Ï", "%CF") URLtemporaire = Replace(URLtemporaire, "Ð", "%D0") URLtemporaire = Replace(URLtemporaire, "Ñ", "%D1") URLtemporaire = Replace(URLtemporaire, "Ò", "%D2") URLtemporaire = Replace(URLtemporaire, "Ó", "%D3") URLtemporaire = Replace(URLtemporaire, "Ô", "%D4") URLtemporaire = Replace(URLtemporaire, "Õ", "%D5") URLtemporaire = Replace(URLtemporaire, "Ö", "%D6") URLtemporaire = Replace(URLtemporaire, "Ø", "%D8") URLtemporaire = Replace(URLtemporaire, "Ù", "%D9") URLtemporaire = Replace(URLtemporaire, "Ú", "%DA") URLtemporaire = Replace(URLtemporaire, "Û", "%DB") URLtemporaire = Replace(URLtemporaire, "Ü", "%DC") URLtemporaire = Replace(URLtemporaire, "Ý", "%DD") URLtemporaire = Replace(URLtemporaire, "Þ", "%DE") URLtemporaire = Replace(URLtemporaire, "ß", "%DF") URLtemporaire = Replace(URLtemporaire, "à", "%E0") URLtemporaire = Replace(URLtemporaire, "á", "%E1") URLtemporaire = Replace(URLtemporaire, "â", "%E2") URLtemporaire = Replace(URLtemporaire, "ã", "%E3") URLtemporaire = Replace(URLtemporaire, "ä", "%E4") URLtemporaire = Replace(URLtemporaire, "å", "%E5") URLtemporaire = Replace(URLtemporaire, "æ", "%E6") URLtemporaire = Replace(URLtemporaire, "ç", "%E7") URLtemporaire = Replace(URLtemporaire, "è", "%E8") URLtemporaire = Replace(URLtemporaire, "é", "%E9") URLtemporaire = Replace(URLtemporaire, "ê", "%EA") URLtemporaire = Replace(URLtemporaire, "ë", "%EB") URLtemporaire = Replace(URLtemporaire, "ì", "%EC") URLtemporaire = Replace(URLtemporaire, "í", "%ED") URLtemporaire = Replace(URLtemporaire, "î", "%EE") URLtemporaire = Replace(URLtemporaire, "ï", "%EF") URLtemporaire = Replace(URLtemporaire, "ð", "%F0") URLtemporaire = Replace(URLtemporaire, "ñ", "%F1") URLtemporaire = Replace(URLtemporaire, "ò", "%F2") URLtemporaire = Replace(URLtemporaire, "ó", "%F3") URLtemporaire = Replace(URLtemporaire, "ô", "%F4") URLtemporaire = Replace(URLtemporaire, "õ", "%F5") URLtemporaire = Replace(URLtemporaire, "ö", "%F6") URLtemporaire = Replace(URLtemporaire, "÷", "%F7") URLtemporaire = Replace(URLtemporaire, "ø", "%F8") URLtemporaire = Replace(URLtemporaire, "ù", "%F9") URLtemporaire = Replace(URLtemporaire, "ú", "%FA") URLtemporaire = Replace(URLtemporaire, "û", "%FB") URLtemporaire = Replace(URLtemporaire, "ü", "%FC") URLtemporaire = Replace(URLtemporaire, "ý", "%FD") URLtemporaire = Replace(URLtemporaire, "þ", "%FE") URLtemporaire = Replace(URLtemporaire, "ÿ", "%FF") AssainirURL = URLtemporaire Exit Function FonctionErreur: AssainirURL = CVErr(xlErrValue) End Function| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 | FunctionAssainirURL(MonURL AsString)'par Excel-Malin.com ( https://excel-malin.com ) On ErrorGoToFonctionErreur DimURLtemporaire AsString URLtemporaire=MonURLURLtemporaire=Replace(URLtemporaire,"%","%25")URLtemporaire=Replace(URLtemporaire," ","%20")URLtemporaire=Replace(URLtemporaire,"""","%22")URLtemporaire=Replace(URLtemporaire,"#","%23")URLtemporaire=Replace(URLtemporaire,"$","%24")URLtemporaire=Replace(URLtemporaire,"&","%26")URLtemporaire=Replace(URLtemporaire,"'","%27")URLtemporaire=Replace(URLtemporaire,"(","%28")URLtemporaire=Replace(URLtemporaire,")","%29")URLtemporaire=Replace(URLtemporaire,"*","%2A")URLtemporaire=Replace(URLtemporaire,"+","%2B")URLtemporaire=Replace(URLtemporaire,",","%2C")URLtemporaire=Replace(URLtemporaire,";","%3B")URLtemporaire=Replace(URLtemporaire,"<","%3C")URLtemporaire=Replace(URLtemporaire,"=","%3D")URLtemporaire=Replace(URLtemporaire,">","%3E")URLtemporaire=Replace(URLtemporaire,"?","%3F")URLtemporaire=Replace(URLtemporaire,"@","%40")URLtemporaire=Replace(URLtemporaire,"[","%5B")URLtemporaire=Replace(URLtemporaire,"]","%5D")URLtemporaire=Replace(URLtemporaire,"^","%5E")URLtemporaire=Replace(URLtemporaire,"`","%60")URLtemporaire=Replace(URLtemporaire,"{","%7B")URLtemporaire=Replace(URLtemporaire,"|","%7C")URLtemporaire=Replace(URLtemporaire,"}","%7D")URLtemporaire=Replace(URLtemporaire,"~","%7E")URLtemporaire=Replace(URLtemporaire,"¢","%A2")URLtemporaire=Replace(URLtemporaire,"£","%A3")URLtemporaire=Replace(URLtemporaire,"¥","%A5")URLtemporaire=Replace(URLtemporaire,"|","%A6")URLtemporaire=Replace(URLtemporaire,"§","%A7")URLtemporaire=Replace(URLtemporaire,"«","%AB")URLtemporaire=Replace(URLtemporaire,"¬","%AC")URLtemporaire=Replace(URLtemporaire,"¯","%AD")URLtemporaire=Replace(URLtemporaire,"º","%B0")URLtemporaire=Replace(URLtemporaire,"±","%B1")URLtemporaire=Replace(URLtemporaire,"ª","%B2")URLtemporaire=Replace(URLtemporaire,",","%B4")URLtemporaire=Replace(URLtemporaire,"µ","%B5")URLtemporaire=Replace(URLtemporaire,"»","%BB")URLtemporaire=Replace(URLtemporaire,"¼","%BC")URLtemporaire=Replace(URLtemporaire,"½","%BD")URLtemporaire=Replace(URLtemporaire,"¿","%BF")URLtemporaire=Replace(URLtemporaire,"À","%C0")URLtemporaire=Replace(URLtemporaire,"Á","%C1")URLtemporaire=Replace(URLtemporaire,"Â","%C2")URLtemporaire=Replace(URLtemporaire,"Ã","%C3")URLtemporaire=Replace(URLtemporaire,"Ä","%C4")URLtemporaire=Replace(URLtemporaire,"Å","%C5")URLtemporaire=Replace(URLtemporaire,"Æ","%C6")URLtemporaire=Replace(URLtemporaire,"Ç","%C7")URLtemporaire=Replace(URLtemporaire,"È","%C8")URLtemporaire=Replace(URLtemporaire,"É","%C9")URLtemporaire=Replace(URLtemporaire,"Ê","%CA")URLtemporaire=Replace(URLtemporaire,"Ë","%CB")URLtemporaire=Replace(URLtemporaire,"Ì","%CC")URLtemporaire=Replace(URLtemporaire,"Í","%CD")URLtemporaire=Replace(URLtemporaire,"Î","%CE")URLtemporaire=Replace(URLtemporaire,"Ï","%CF")URLtemporaire=Replace(URLtemporaire,"Ð","%D0")URLtemporaire=Replace(URLtemporaire,"Ñ","%D1")URLtemporaire=Replace(URLtemporaire,"Ò","%D2")URLtemporaire=Replace(URLtemporaire,"Ó","%D3")URLtemporaire=Replace(URLtemporaire,"Ô","%D4")URLtemporaire=Replace(URLtemporaire,"Õ","%D5")URLtemporaire=Replace(URLtemporaire,"Ö","%D6")URLtemporaire=Replace(URLtemporaire,"Ø","%D8")URLtemporaire=Replace(URLtemporaire,"Ù","%D9")URLtemporaire=Replace(URLtemporaire,"Ú","%DA")URLtemporaire=Replace(URLtemporaire,"Û","%DB")URLtemporaire=Replace(URLtemporaire,"Ü","%DC")URLtemporaire=Replace(URLtemporaire,"Ý","%DD")URLtemporaire=Replace(URLtemporaire,"Þ","%DE")URLtemporaire=Replace(URLtemporaire,"ß","%DF")URLtemporaire=Replace(URLtemporaire,"à","%E0")URLtemporaire=Replace(URLtemporaire,"á","%E1")URLtemporaire=Replace(URLtemporaire,"â","%E2")URLtemporaire=Replace(URLtemporaire,"ã","%E3")URLtemporaire=Replace(URLtemporaire,"ä","%E4")URLtemporaire=Replace(URLtemporaire,"å","%E5")URLtemporaire=Replace(URLtemporaire,"æ","%E6")URLtemporaire=Replace(URLtemporaire,"ç","%E7")URLtemporaire=Replace(URLtemporaire,"è","%E8")URLtemporaire=Replace(URLtemporaire,"é","%E9")URLtemporaire=Replace(URLtemporaire,"ê","%EA")URLtemporaire=Replace(URLtemporaire,"ë","%EB")URLtemporaire=Replace(URLtemporaire,"ì","%EC")URLtemporaire=Replace(URLtemporaire,"í","%ED")URLtemporaire=Replace(URLtemporaire,"î","%EE")URLtemporaire=Replace(URLtemporaire,"ï","%EF")URLtemporaire=Replace(URLtemporaire,"ð","%F0")URLtemporaire=Replace(URLtemporaire,"ñ","%F1")URLtemporaire=Replace(URLtemporaire,"ò","%F2")URLtemporaire=Replace(URLtemporaire,"ó","%F3")URLtemporaire=Replace(URLtemporaire,"ô","%F4")URLtemporaire=Replace(URLtemporaire,"õ","%F5")URLtemporaire=Replace(URLtemporaire,"ö","%F6")URLtemporaire=Replace(URLtemporaire,"÷","%F7")URLtemporaire=Replace(URLtemporaire,"ø","%F8")URLtemporaire=Replace(URLtemporaire,"ù","%F9")URLtemporaire=Replace(URLtemporaire,"ú","%FA")URLtemporaire=Replace(URLtemporaire,"û","%FB")URLtemporaire=Replace(URLtemporaire,"ü","%FC")URLtemporaire=Replace(URLtemporaire,"ý","%FD")URLtemporaire=Replace(URLtemporaire,"þ","%FE")URLtemporaire=Replace(URLtemporaire,"ÿ","%FF") AssainirURL=URLtemporaireExitFunction FonctionErreur:AssainirURL=CVErr(xlErrValue) EndFunction |
Et voici un exemple d'utilisation dans une procédure VBA:
Sub Test_URL() 'par Excel-Malin.com ( https://excel-malin.com ) Dim ExempleDeURL As String ExempleDeURL = "https://www.monsite.fr/fichiers/L'aperçu de consommation des oranges à Orléans.pdf" MonURLcorrigee = AssainirURL(ExempleDeURL) MsgBox "URL correcte: " & MonURLcorrigee End Sub| 123456789101112 | SubTest_URL()'par Excel-Malin.com ( https://excel-malin.com ) DimExempleDeURL AsString ExempleDeURL="https://www.monsite.fr/fichiers/L'aperçu de consommation des oranges à Orléans.pdf"MonURLcorrigee=AssainirURL(ExempleDeURL)MsgBox"URL correcte: "&MonURLcorrigee EndSub |
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:
- Liste de toutes les fonctions VBA
- Télécharger un fichier à partir d'internet avec VBA
- VBA: vérifier si une adresse internet (URL) existe
- RECHERCHEV en VBA – oui, oui, c'est possible!
- Calculer une SOMME en VBA
- Protéger le code VBA par un mot de passe
Tag » Code Caractère Spéciaux Vba
-
Chr Function (Visual Basic For Applications) - Microsoft Docs
-
Special Characters In Code - Visual Basic - Microsoft Docs
-
Insérer Des Caractères Spéciaux Avec Excel VBA - ExcelCorpo
-
Insérer Caractère Spécial Dans Le Code VBA
-
(vba) Caractère Spécial
-
Excel-VBA: Caractères Spéciaux - YouTube
-
Sendkeys Et Caractères Spéciaux - CodeS-SourceS
-
Manager Les Caracteres Speciaux - Forum Excel-Pratique
-
Suppression Des Caractères Spéciaux VBA Excel - AskCodez
-
Fonction ChrW [VBA] - LibreOffice Help
-
Excel VBA Supprimer Des Caractères Unicode Dans Une Chaîne De ...
-
Caractère Spécial - Visual Basic - CodeS-SourceS
-
Suppression De Caractères Spéciaux VBA Excel
-
(vba) Caractère Spécial : Forum Excel - Generation-NT