Share via

Migration Sharepoint Liaisons entre les classeurs Excel

Public_Name 20 Reputation points
2025-07-30T07:43:46.4066667+00:00

Bonjour,

Je suis actuellement en phase de test pour une migration de documents vers SharePoint et je rencontre un problème concernant les liaisons entre fichiers Excel.

Après la migration test, les fichiers Excel contenant des liens vers d'autres classeurs, ont bien vu leurs liaisons mise à jour cependant ces liaisons sont incorrects : une partie du chemin SharePoint est manquante.

Voici un exemple de mon problème :

Chemin d'origine dans une cellule Excel (avant migration) :

'V:\Equipe\ProjetA\2025[Planning_Equipe.xlsx]Taches'!D5

Chemin obtenu après migration (incorrect) :

'https://entreprise.sharepoint.com/Equipe/ProjetA/2025/[Planning_Equipe.xlsx]Taches'!D5

Chemin attendu (correct) :

'https://entreprise.sharepoint.com/sites/SITE-TEXT/Documents%20partagés/Equipe/ProjetA/2025/[Planning_Equipe.xlsx]Taches'!D5

Il semble que SharePoint ou Excel n’ajoute pas automatiquement les segments sites/SITE-TEXT/Documents partagés/, ce qui empêche les liaisons de fonctionner correctement.

Savez-vous où je peux corriger cette valeur, ou toutes indices pour la résolution de ce problème ?

Merci d'avance

Microsoft 365 and Office | SharePoint | Other | Windows
0 comments No comments

Answer accepted by question author

Demi-N 17,980 Reputation points Microsoft External Staff Moderator
2025-07-30T09:20:17.01+00:00

J'utilise un outil de traduction pour faciliter la communication avec vous. S'il y a des erreurs grammaticales ou linguistiques, je vous prie de bien vouloir les excuser.

Bonjour @Public_Name

Merci pour votre message détaillé concernant votre problème. Il s'agit d'un défi courant lors de la migration de classeurs Excel avec des liaisons externes vers SharePoint, et je peux certainement vous proposer des pistes.

Votre analyse est tout à fait correcte. Le problème vient du mécanisme de mise à jour automatique des liaisons d'Excel, qui construit incorrectement le nouveau chemin. Il prend la racine de votre site SharePoint (https://entreprise.sharepoint.com/) et y ajoute l'ancienne structure de dossiers (/Equipe/ProjetA/...), mais il manque la partie intermédiaire cruciale de l'URL : le chemin vers le site et la bibliothèque de documents (/sites/SITE-TEXT/Documents partagés/).

Voici quelques solutions, allant de la méthode manuelle à l'automatisation, que vous pouvez utiliser pour résoudre ce problème.

Solution 1 : Correction Manuelle (pour un petit nombre de fichiers)

C'est la manière la plus directe de corriger quelques fichiers.

  1. Ouvrez le fichier Excel avec les liaisons rompues.
  2. Allez dans l'onglet Données -> groupe Requêtes et connexions -> cliquez sur Modifier les liaisons.
  3. Dans la boîte de dialogue, sélectionnez la liaison incorrecte.
  4. Cliquez sur Changer la source... et naviguez jusqu'au fichier source correct sur SharePoint.
  5. Sélectionnez le fichier et cliquez sur OK. Excel mettra à jour la liaison avec le chemin correct.

 

Solution 2 : Rechercher et Remplacer (solution rapide pour de nombreuses liaisons dans un même fichier)

Si un seul classeur contient de nombreuses liaisons incorrectes, vous pouvez utiliser la fonction Rechercher et Remplacer.

  1. Créez d'abord une copie de sauvegarde de votre fichier.
  2. Appuyez sur Ctrl + H pour ouvrir la boîte de dialogue Rechercher et remplacer.
  3. Dans le champ Rechercher :, entrez la partie incorrecte du chemin :
    'https://entreprise.sharepoint.com/Equipe/
  4. Dans le champ Remplacer par :, entrez le chemin complet et correct :
    'https://entreprise.sharepoint.com/sites/SITE-TEXT/Documents%20partagés/Equipe/
    (Note : Documents%20partagés est l'encodage URL pour "Documents partagés")
  5. Cliquez sur Remplacer tout.

Solution 3 : Script VBA (la solution la plus puissante pour les mises à jour en masse)

Pour un grand nombre de fichiers, une macro VBA est la solution la plus efficace. Vous pouvez exécuter ce script sur chaque classeur concerné pour trouver et corriger automatiquement toutes les liaisons incorrectes.

Comment l'utiliser :

  1. Ouvrez un classeur Excel concerné.
  2. Appuyez sur Alt + F11 pour ouvrir l'éditeur VBA.
  3. Dans l'éditeur, cliquez sur Insertion -> Module.
  4. Copiez et collez le code ci-dessous dans la fenêtre du nouveau module.
  5. Important : Vérifiez que les variables oldPathFragment et correctPathPrefix dans le code correspondent à vos chemins spécifiques.
  6. Fermez l'éditeur VBA, appuyez sur Alt + F8, sélectionnez FixSharePointLinks et cliquez sur Exécuter.

Code VBA :

Sub FixSharePointLinks()
    ' Corrige automatiquement les liaisons Excel rompues après une migration SharePoint.
    ' Conçu pour les chemins où le segment site/bibliothèque est manquant.
    
    Dim links As Variant
    Dim i As Integer
    Dim oldLink As String
    Dim newLink As String
    
    ' --- VEUILLEZ PERSONNALISER CES VALEURS ---
    ' Le chemin de base incorrect qu'Excel a généré.
    ' Exemple de votre cas : 'https://entreprise.sharepoint.com/Equipe/'
    Dim oldPathFragment As String
    oldPathFragment = "https://entreprise.sharepoint.com/Equipe/"
    
    ' Le chemin complet correct qui doit remplacer l'incorrect.
    ' Exemple de votre cas : 'https://entreprise.sharepoint.com/sites/SITE-TEXT/Documents%20partagés/Equipe/'
    Dim correctPathPrefix As String
    correctPathPrefix = "https://entreprise.sharepoint.com/sites/SITE-TEXT/Documents%20partagés/Equipe/"
    ' ------------------------------------

    On Error GoTo ErrorHandler
    
    ' Obtenir toutes les sources de liaisons Excel externes du classeur actif
    links = ActiveWorkbook.LinkSources(Type:=xlExcelLinks)
    
    If Not IsEmpty(links) Then
        For i = 1 To UBound(links)
            oldLink = links(i)
            
            ' Vérifier si la liaison contient la structure de chemin incorrecte
            If InStr(1, oldLink, oldPathFragment, vbTextCompare) > 0 Then
                ' Construire la nouvelle liaison correcte en remplaçant la partie incorrecte
                newLink = Replace(oldLink, oldPathFragment, correctPathPrefix, 1, -1, vbTextCompare)
                
                ' Appliquer la modification au classeur
                ActiveWorkbook.ChangeLink Name:=oldLink, NewName:=newLink, Type:=xlExcelLinks
                Debug.Print "SUCCÈS : Liaison modifiée vers -> " & newLink
            Else
                Debug.Print "IGNORÉ : La liaison ne correspond pas au modèle : " & oldLink
            End If
        Next i
        
        MsgBox "Le processus de mise à jour des liaisons est terminé !", vbInformation
    Else
        MsgBox "Aucune liaison Excel externe n'a été trouvée dans ce classeur.", vbInformation
    End If
    
    Exit Sub

ErrorHandler:
    MsgBox "Une erreur est survenue : " & Err.Description, vbCritical
End Sub

Recommandation pour les futures migrations

Si vous êtes en phase de test, il serait bénéfique d'examiner l'outil ou le processus de migration que vous utilisez. Si vous utilisez un outil tiers (comme ShareGate, etc.), il peut disposer de paramètres avancés pour le "Mappage de chemins" (Path Mapping) ou la "Gestion des liaisons" (Link Management) qui peuvent gérer cette conversion correctement pendant la migration elle-même, vous évitant ce travail de nettoyage post-migration.

J'espère que ces solutions vous aideront à résoudre efficacement ce problème de liaisons. Le script VBA est généralement la meilleure approche pour une correction à grande échelle.

N'hésitez pas à me faire savoir si vous avez d'autres questions.


Si cette réponse vous est utile, veuillez cliquer sur “Accepter la réponse” et voter positivement. Si vous avez des questions supplémentaires concernant cette réponse, cliquez sur “Commentaire”.

Remarque : Veuillez suivre les étapes de notre documentation pour activer les notifications par e-mail si vous souhaitez recevoir les notifications liées à ce fil de discussion

User's image

Was this answer helpful?

1 person found this answer helpful.
0 comments No comments

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.