VBA et SharePoint: transformer les liens de fichiers (2010 à Online)

Vous utilisez VBA avec SharePoint et vos macros ne fonctionnent plus après une migration ?
C'est un problème assez fréquent: le code VBA qui fonctionnait avec SharePoint 2010 casse dès que l'on passe à SharePoint 2013 ou aux versions suivantes (2016, 2019, Subscription, Online).

Bonne nouvelle: il existe des solutions! Dans certains cas, il suffit de modifier la façon dont le chemin du fichier est écrit. Et aujourd’hui, avec SharePoint Online / Microsoft 365, d’autres méthodes sont même plus simples et plus fiables.

Transformer le lien en SharePoint 2013 / 2016 / 2019

Prenons un exemple concret. On veut copier un fichier texte (C:\MonDossier\test.txt) vers SharePoint.
Avant (SharePoint 2010), on utilisait un chemin de type :

//teamsites.monserveur.intranet/sites/mon-site/Shared Documents/mon-dossier/test.txt

Et ce code VBA fonctionnait :

Mais en SharePoint 2013 (et suivants), le lien devient:

https://monserveur.net/sites/mon-site/Shared Documents/mon-dossier/test.txt

Si vous essayez ce chemin tel quel, le code plantera. La solution consiste à transformer le lien de manière suivante:

  1. Supprimer https:
  2. Remplacer les / par des \
  3. Ajouter @SSL juste après le nom du serveur

Ce qui donne:

\\monserveur.net@SSL\sites\mon-site\Shared Documents\mon-dossier\test.txt

Avec ce format, votre code VBA peut continuer à fonctionner:

Et avec SharePoint Online / Microsoft 365 ?

Depuis quelques années, la majorité des entreprises utilisent SharePoint Online. Dans ce cas:

  • Option 1: synchroniser la bibliothèque avec OneDrive >> vos fichiers deviennent accessibles par un chemin local classique (C:\Users\…\SharePoint\).
  • Option 2: télécharger un fichier par URL avec une fonction VBA comme URLDownloadToFile pour récupérer des documents ponctuels.
  • Option 3: automatiser l'envoi via Power Automate ou l'API Microsoft Graph (plus moderne, mais hors VBA pur).

Astuce : si vous restez en VBA pur, l'option "OneDrive synchro" est la plus simple : vous manipulez vos fichiers comme s'ils étaient sur le disque dur.

En cas de problèmes (alias "ça ne marche toujours pas")

  • Vérifiez que le service WebClient est activé sur Windows.
    Note importante : l’accès SharePoint via le protocole WebDAV repose sur le service Windows WebClient.
    – Ce service est toujours présent dans Windows 10/11, mais souvent désactivé par défaut.
    – Il peut être activé manuellement si nécessaire, mais cette solution est considérée comme obsolète et peut disparaître dans les futures versions de Windows.
    – Si votre entreprise utilise déjà SharePoint Online, il est préférable d’opter pour la synchronisation OneDrive ou des solutions modernes (Power Automate, API Graph).
  • Supprimez les espaces ou caractères spéciaux dans le chemin (utilisez ma fonction AssainirURL()).
  • Attention aux accès protégés par MFA / SSO : dans ce cas, la synchro OneDrive reste la meilleure solution.

Conclusion

En résumé rapide:

  • Pour SharePoint 2013/2016/2019, le format \\@SSL\ permet de garder vos macros.
  • Pour SharePoint Online (M365), préférez la synchronisation OneDrive ou des outils modernes (Power Automate, Graph).
    Vous évitez ainsi les plantages VBA et gagnez en fiabilité.

Pour aller plus loin en VBA…

Et pour finir, comme d'habitude, quelques autres articles qui pourraient vous servir.

Laissez un commentaire

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

5 commentaires sur “VBA et SharePoint: transformer les liens de fichiers (2010 à Online)”