Excel : corriger l’erreur #REF! de GETPIVOTDATA avec OneDrive (d.docs.live.net)

Vos formules GETPIVOTDATA renvoient #REF! lorsque le classeur OneDrive d’origine est fermé ? Voici pourquoi Excel sollicite d.docs.live.net et comment corriger durablement le problème, avec des méthodes stables pour vos tableaux de bord.

Sommaire

Erreur « #REF » avec GETPIVOTDATA et demande de connexion d.docs.live

Vue d’ensemble du problème

  • Vous utilisez GETPIVOTDATA pour récupérer des valeurs d’un tableau croisé dynamique (TCD) stocké sur OneDrive.
  • Lorsque le classeur contenant le TCD est fermé, les cellules qui s’appuient sur GETPIVOTDATA affichent #REF!.
  • Excel ouvre parallèlement une invite vous demandant de vous connecter à d.docs.live.net/… pour « actualiser » ou « accéder à la source ».

Racine du problème : GETPIVOTDATA cible le cache du TCD (PivotCache) et non une simple cellule. Si ce cache n’est pas disponible (classeur fermé, session OneDrive non authentifiée, accès hors‑ligne, chemin modifié), la référence est rompue et Excel retourne #REF!. L’invite provient du mécanisme de connexion (WebDAV/ODC) utilisé par Excel pour accéder aux classeurs hébergés sur OneDrive via d.docs.live.net.

Solutions et bonnes pratiques

ObjectifMéthodeÉtapes clés / points d’attention
Conserver GETPIVOTDATA sans erreurPlacer la formule dans le même fichier que le TCD, puis exposer le résultat via une « feuille relais » vers un second classeur.Dans le classeur A (celui du TCD), créez une feuille « Relais » avec toutes vos formules GETPIVOTDATA. Dans le classeur B (tableau de bord), créez de simples liaisons du type ='[A.xlsx]Relais'!B2. Avantage : le TCD peut rester fermé côté utilisateur du classeur B ; la liaison pointe une cellule standard déjà calculée.
Éliminer la dépendance au TCDRemplacer GETPIVOTDATA par une recherche dynamique (INDEX + EQUIV ou XLOOKUP) sur la source ou une copie valeurs du TCD.Convertissez la plage source en Table (Ctrl + T) pour bénéficier des noms structurés. Exemple : =XLOOKUP(critère; Table[Clé]; Table[Valeur]). Les formules restent valides même si le TCD est supprimé, déplacé ou clos.
Rendre les résultats statiquesCopier‑coller les GETPIVOTDATA en valeurs lorsque les chiffres n’ont plus vocation à évoluer.Sélectionnez les cellules → CopierCollage spécial > Valeurs. Plus de risque de #REF!, mais plus d’actualisation automatique.
Stabiliser l’accès OneDriveVérifier authentification et chemin.Excel > Fichier > Compte : confirmez que vous êtes connecté au même compte que votre OneDrive. Évitez de renommer ou déplacer les dossiers OneDrive utilisés par vos liaisons ; l’URL change et rompt les liens.
Moderniser la récupération de donnéesUtiliser Power Query (Obtenir & Transformer) ou Power Pivot.Importez la source du TCD via Power Query et chargez‑la en tableau, ou créez un modèle de données. Mise à jour pilotée (bouton, macro, planification), sans invite intrusive d.docs.live.net.

Informations complémentaires utiles

  • Désactiver la génération automatique de GETPIVOTDATA : Fichier > Options > Formules > Travail sur les TCD : décochez « Générer des formules GETPIVOTDATA ». Pratique si vous préférez vos propres formules.
  • Sauvegarde hors OneDrive : l’historique de versions OneDrive (clic droit > Historique des versions) aide à revenir en arrière, mais complétez‑le avec une sauvegarde locale/dédiée (images système, planifications).
  • Diagnostic des connexions : Données > Connexions : sélectionnez la connexion OneDrive → Propriétés → onglet Définition (vérifiez le chemin complet). Dans Paramètres de connexion, « Enregistrer le mot de passe » peut éviter les invites répétées (selon votre politique sécurité).

Pourquoi GETPIVOTDATA casse quand le classeur est fermé

GETPIVOTDATA n’interroge pas la cellule affichée mais l’arborescence du TCD : champs, éléments, mesures, filtres. Cela suppose l’accès au PivotCache du classeur d’origine. Lorsqu’un TCD réside dans un fichier hébergé sur OneDrive :

  • Si le classeur source est fermé, Excel tente d’ouvrir la source via WebDAV (d.docs.live.net) pour atteindre le cache. En l’absence d’authentification valide, Excel affiche une invite et renvoie #REF!.
  • Si le chemin a changé (renommage du dossier, déplacement, déconnexion/reconnexion à un autre compte), la chaîne d’adresse n’est plus valide.
  • Hors‑ligne, Excel ne peut ni ouvrir la source ni reconstituer le cache : #REF! est immédiat.

À retenir : GETPIVOTDATA fonctionne parfaitement tant que le TCD est dans le même classeur ou que les deux classeurs sont ouverts et authentifiés simultanément. Dès que l’un des deux est fermé → dépendance cassée.

Scénarios typiques et symptômes

ScénarioSymptômeCause probableCorrection recommandée
TCD dans A.xlsx (OneDrive), tableau de bord dans B.xlsx#REF! dans B.xlsx, invite d.docs.live.netPivotCache inaccessible (A.xlsx fermé/non authentifié)Feuille relais dans A.xlsx ; B.xlsx lie des cellules calculées
Renommage du dossier OneDrive « Projets » → « Projets‑2025 »« Impossible d’ouvrir la source de données », liens cassésChemin OneDrive modifié, ID WebDAV différentRéparer liens ; éviter les renommages de dossiers référencés
PC hors‑ligne (train/avion)#REF! et demande d’identifiantsAucune session WebDAV disponibleCopier‑coller valeurs ou relier une Table locale via Power Query
Changement de compte MicrosoftInvite d’authentification récurrenteJeton/session OneDrive expiré ou compte différentSe reconnecter au bon compte dans Excel > Fichier > Compte

Mise en œuvre pas à pas des solutions

Solution A : feuille relais dans le classeur du TCD

  1. Ouvrez le classeur A.xlsx contenant le TCD.
  2. Ajoutez une feuille nommée Relais et y placez toutes vos formules GETPIVOTDATA nécessaires aux indicateurs.
  3. Vérifiez que chaque formule renvoie la valeur attendue. Exemple : =GETPIVOTDATA("Montant";'[A.xlsx]Pivot'!$A$3;"Année";2025;"Produit";"Alpha")
  4. Dans B.xlsx (votre tableau de bord), créez des liaisons simples : ='[A.xlsx]Relais'!B2, ='[A.xlsx]Relais'!C5, etc.
  5. Fermez A.xlsx et testez l’ouverture de B.xlsx : les liaisons renvoient des nombres sans GETPIVOTDATA côté B. Plus d’invite d.docs.live.net.

Astuce : combinez avec Formules > Calcul manuel dans A.xlsx si vous souhaitez maîtriser le coût de recalcul du TCD.

Solution B : remplacer GETPIVOTDATA par XLOOKUP/INDEX

  1. Identifiez la table source du TCD. Si elle n’existe pas, exportez le TCD en valeurs (clic droit sur le TCD > Copier > Collage spécial > Valeurs) ou récupérez sa source.
  2. Convertissez la plage en Table (Ctrl + T). Nommez‑la par exemple Ventes.
  3. Créez des recherches dynamiques : =XLOOKUP($A2; Ventes[Produit]; Ventes[Montant])
    ou
    =INDEX(Ventes[Montant]; EQUIV($A2; Ventes[Produit]; 0))
  4. Option multi‑critères (produit + année) : =INDEX(Ventes[Montant]; EQUIV(1; (Ventes[Produit]=$A2)*(Ventes[Année]=$B2); 0))

Ces formules pointent une table locale et restent fonctionnelles quelle que soit l’ouverture du TCD d’origine.

Solution C : figer les chiffres en valeurs

  1. Sélectionnez les cellules à figer.
  2. Ctrl + CCollage spécial > Valeurs.
  3. Ajoutez une date de gel (p.ex. « Clôture au 30/09/2025 ») pour la traçabilité.

Solution D : Power Query ou Power Pivot

Avec Power Query

  1. Données > Obtenir des données > Depuis un classeur.
  2. Sélectionnez la source (A.xlsx) dans votre dossier OneDrive synchronisé localement pour éviter l’invite WebDAV.
  3. Nettoyez/transformez, puis Charger vers une table.
  4. Dans B.xlsx, vos indicateurs pointent cette table locale, rafraîchissable à la demande.

Avec Power Pivot / Modèle de données

  1. Activez l’onglet Power Pivot, importez la source.
  2. Créez des mesures DAX (p.ex. Montant Total := SUM(Ventes[Montant])) et des TCD basés sur le modèle.
  3. Vos rapports se construisent sur le modèle, non sur un TCD externe.

Bon réflexe : si vous devez conserver GETPIVOTDATA, isolez‑le dans le fichier source et ne publiez vers l’extérieur que des cellules « résultats ».

Réglages et hygiène des fichiers

Désactiver la génération automatique de GETPIVOTDATA

Fichier > Options > Formules > Travail sur les TCD : décochez « Générer des formules GETPIVOTDATA ». Vous pourrez alors cliquer dans un TCD sans qu’Excel insère automatiquement GETPIVOTDATA.

Options du TCD qui influencent la stabilité

  • Options du TCD > Données : « Enregistrer les données source avec le fichier » accélère l’ouverture mais alourdit le classeur. Cela n’élimine pas la dépendance de GETPIVOTDATA lorsqu’il est utilisé depuis un autre fichier.
  • Activez « Rafraîchir les données à l’ouverture du fichier » si vous voulez garantir des chiffres à jour côté feuille relais.

Gestion des identifiants OneDrive

  • Excel > Fichier > Compte : connectez‑vous au même compte que celui qui héberge le classeur source.
  • Windows > Gestionnaire d’identifiants > Identifiants Windows : supprimez/réinitialisez les entrées obsolètes associées à d.docs.live.net si les invites persistent.
  • Évitez de déplacer/renommer les répertoires utilisés par les liens Excel.

Architecture recommandée des fichiers

FichierRôleContenuInteraction
A.xlsxSource & calculTCD, feuille relais avec GETPIVOTDATASeul A calcule ; B se contente de lire les cellules « résultat »
B.xlsxTableau de bordGraphiques, KPIs, mises en formeLiaisons ='[A.xlsx]Relais'!Cellule, aucun GETPIVOTDATA
(Optionnel) C.xlsxExtractionTable(s) Power QueryAlimente A et/ou B sans TCD externe

Check‑list rapide de dépannage

  1. Ouvrez le classeur du TCD. L’erreur #REF! disparaît‑elle ? Si oui : dépendance au cache.
  2. Testez la connexion OneDrive dans Excel > Fichier > Compte (même compte ?).
  3. Vérifiez Données > Connexions > Propriétés : chemin d.docs.live.net cohérent ?
  4. Essayez depuis un chemin local synchronisé (dossier OneDrive dans l’Explorateur) au lieu d’une URL.
  5. Isoler GETPIVOTDATA dans une feuille relais et remplacer côté rapport par des liaisons simples.
  6. En dernier recours : figer en valeurs, ou basculer vers Power Query/Modèle de données.

Exemples concrets de formules

GETPIVOTDATA ciblant un TCD nommé « TCD_Ventes »

=GETPIVOTDATA("Montant"; "[A.xlsx]Synthèse"!$A$3; "Année"; 2025; "Produit"; "Alpha")

Problème : si A.xlsx est fermé, Excel tente d’atteindre le cache via d.docs.live.net → #REF!.

Remplacement par XLOOKUP sur une Table « Ventes »

=XLOOKUP($B$2 & "|" & $C$2; Ventes[Produit] & "|" & Ventes[Année]; Ventes[Montant])

Liaison depuis la feuille relais

='[A.xlsx]Relais'!D5

La cellule D5 de A.xlsx contient la valeur calculée par GETPIVOTDATA. B.xlsx ne fait qu’afficher ce résultat stable.

Spécificités Windows, Mac et Excel pour le web

  • Windows : OneDrive expose des chemins WebDAV du type \\d.docs.live.net\<ID>\. Excel déclenche volontiers l’invite d’identification si la session expire.
  • macOS : les invites sont plus rares mais GETPIVOTDATA reste dépendant du classeur source. Préférez les chemins du dossier OneDrive synchronisé localement.
  • Excel pour le web : GETPIVOTDATA fonctionne dans le même fichier. Pour des rapports multi‑fichiers, utilisez tables/Power Query et évitez les dépendances croisées au cache d’un TCD.

Performance et maintenance

  • Réduire les TCD « tampons » : un TCD minimal par jeu de données + mesures claires vaut mieux qu’une prolifération d’objets.
  • Nommez vos TCD (Analyse du TCD > Nom du TCD) et vos tables pour une maintenance lisible.
  • Regroupez toutes les GETPIVOTDATA dans la feuille relais, documentée (onglet, légende, date de mise à jour).
  • Planifiez un rafraîchissement contrôlé (bouton macro, Power Automate, tâche) plutôt que des rafraîchissements implicites à chaque ouverture.

Sécurité et conformité

L’option « Enregistrer le mot de passe » dans les paramètres de connexion limite les invites, mais n’est acceptable que si votre politique interne l’autorise. Privilégiez :

  • Des chemins locaux synchronisés (OneDrive Desktop) plutôt qu’une URL WebDAV explicite.
  • Des sources read‑only pour les rapports de production.
  • Des comptes de service dédiés pour les flux automatisés (Power Query/Power Automate), si votre DSI le permet.

Erreurs cousines et comment les traiter

  • #N/A : la combinaison de champs demandée n’existe pas dans le TCD ; vérifiez filtres/orthographe.
  • #VALEUR! : concaténation ou calcul sur du texte renvoyé par GETPIVOTDATA ; convertissez explicitement en nombre (--valeur).
  • « Impossible d’ouvrir la source » : chemin invalide ou droits insuffisants ; réparez les liens et recréez l’authentification OneDrive dans Excel.

Foire aux questions

Puis‑je faire fonctionner GETPIVOTDATA quand le classeur du TCD est fermé ?

Non, pas de manière fiable si la formule est dans un autre fichier. Par conception, GETPIVOTDATA interroge le cache du TCD du fichier source. Utilisez la feuille relais, des liaisons simples ou des recherches sur une table locale. Quelle différence entre ='[A.xlsx]Relais'!B2 et GETPIVOTDATA ?

La première lit une cellule calculée (valeur figée côté source), la seconde interroge la structure du TCD. La cellule liée reste accessible même si le TCD est fermé, car le calcul a déjà eu lieu dans A.xlsx. Les fonctions CUBE (si j’utilise le Modèle de données) contournent‑elles le problème ?

Oui, lorsqu’elles pointent un modèle de données intégré au même fichier. Pour des références inter‑fichiers, préférez des pipelines Power Query et des liaisons de cellules. Comment éviter l’invite d.docs.live.net ?

Ouvrez/rafraîchissez via le dossier OneDrive synchronisé localement, restez connecté au bon compte Microsoft dans Excel, et évitez d’utiliser des URL WebDAV explicites dans vos connexions. Idéalement, basculez vers des sources locales (Power Query) et des relais de cellules.

Procédure de correction express

  1. Ouvrez le fichier source (A.xlsx) et vérifiez que les TCD se recalculent correctement.
  2. Créez une feuille relais ; déplacez‑y toutes les GETPIVOTDATA utiles au reporting.
  3. Dans le fichier rapport (B.xlsx), remplacez chaque GETPIVOTDATA par une liaison vers la cellule correspondante de la feuille relais.
  4. Fermez A.xlsx et rouvrez B.xlsx : plus de #REF!, plus d’invite d.docs.live.net.
  5. Documentez la date/heure de mise à jour et, si nécessaire, ajoutez un bouton « Actualiser » (Power Query ou macro) pour industrialiser.

Résumé exécutif

GETPIVOTDATA est une fonction puissante, mais structurelle : elle exige l’accès au cache du TCD. Dans des architectures multi‑fichiers et cloud (OneDrive), cela provoque des #REF! et des invites d’authentification. Trois approches robustes existent : 1) feuille relais dans le fichier du TCD, 2) recherches dynamiques sur tables locales (XLOOKUP/INDEX), 3) pipelines Power Query/Modèle de données. En appliquant ces modèles, vous éliminez l’erreur #REF!, supprimez les boîtes de dialogue intempestives et sécurisez vos tableaux de bord.

Annexe : modèles de messages et actions

Message ExcelTraduction/ContexteAction immédiate
« Vous devez vous connecter à d.docs.live.net pour accéder à ce fichier »Excel tente d’ouvrir une source OneDrive via WebDAVSe reconnecter au bon compte, ou préférer un chemin local synchronisé
#REF! dans une formule GETPIVOTDATAPivotCache non accessibleOuvrir la source, déplacer la formule dans le fichier du TCD, ou utiliser une liaison/Power Query
« Impossible d’ouvrir la source de données »Chemin invalide/renomméRéparer les liens, éviter les renommages de dossiers OneDrive

Bonnes pratiques à long terme

  • Standardisez vos emplacements (p.ex. OneDrive\BI\Sources\ et OneDrive\BI\Rapports\).
  • Documentez chaque rapport (source, fréquence de rafraîchissement, propriétaire, dépendances).
  • Testez hors‑ligne régulièrement pour vérifier la robustesse en mobilité.
  • Versionnez les fichiers sensibles (copie « JJMMAAAA ») en plus de l’historique de versions OneDrive.

Conclusion

Si votre rapport Excel dépend d’un TCD situé dans un autre fichier OneDrive, n’utilisez pas GETPIVOTDATA directement dans le rapport. Placez les GETPIVOTDATA dans le fichier source, exposez des cellules relais ou préférez des tables/recherches via Power Query. Vous obtiendrez un reporting fiable, sans invite et pérenne pour vos utilisateurs.

Sommaire