VBA et SharePoint: Transformer les liens des fichiers

De plus en plus d'entreprises migrent leur SharePoint vers la version 2013 et les suivantes. Le problème est que le code VBA pour travailler avec des fichiers qui fonctionnait jusqu'à la version SharePoint 2010 ne fonctionne plus dans les versions plus récentes de SharePoint.

Vous n'arrivez plus à copier, supprimer, déplacer ou même à ouvrir dans VBA vos fichiers stockés sur SharePoint 2013/2016/2019/Subscription? Voici la solution
Et la bonne nouvelle est qu'il ne faut même pas modifier votre code VBA. Il suffit de modifier, de manière très spécifique, le lien vers vos fichiers.

Transformer le lien pour le rendre utilisable en SharePoint 2013

Le plus simple pour expliquer cette solution est de le montrer sur un exemple. Prenons donc la situation suivante: on veut copier un fichier texte (" C:\MonDossier\test.txt ") sur le SharePoint. Dans SharePoint 2010, la destination aurait la forme suivante
" //teamsites.monserveur.intranet/sites/mon-site/Shared Documents/mon-dossier/test.txt "

On peut donc utiliser le code suivant:

Mais dans le SharePoint 2013 et les suivants, le lien vers la destination ressemble à ceci:

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

Malheureusement, si vous utilisez un tel chemin dans le code VBA plus haut (écrit donc pour le SharePoint avant sa version 2013), cela ne fonctionnera pas. Et non, supprimer uniquement le "https:" ne fera pas l'affaire…

Il est nécessaire de transformer le lien de la manière suivante:

  1. supprimer le "https:"
  2. remplacer les barres obliques ( / ) par les barres obliques inversées ( \ )
  3. il faut ajouter "@SSL" (sans guillemets) juste après le nom (le suffixe) du serveur

Cela donnera donc:

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

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

Avec l'adresse dans cette forme, vous pourrez continuer à utiliser vos codes VBA existants pour travailler avec des fichiers.

Pour en revenir à notre exemple, voici le code VBA qui fonctionnera lors d'utilisation du SharePoint 2013:

 

 

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

Il est possible qu'il faille également supprimer les espaces et les caractères spéciaux de l'URL du fichier. Pour cela, vous pouvez utiliser la fonction VBA AssainirURL() que je vous propose… Elle est très facile à utiliser et à intégrer dans votre Projet VBA.

Conclusion

Même si le problème semble assez grave au départ (impossible de gérer les fichiers) lors de la migration vers un SharePoint récent, la solution est relativement simple même si elle peut être fastidieuse (modification de toutes les adresses est nécessaire). Mais au moins, il n'est pas nécessaire de modifier la structure du code VBA.

 

Pour aller plus loin en VBA…

Pour finir, je vous propose quelques articles qui pourraient vous être utiles.

 

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 des fichiers”