Pourquoi la connexion SharePoint ralentit vos actualisations ?
Si vous avez déjà cherché à connecter Power BI à une source « dossier SharePoint », vous avez certainement rencontré le principal problème : tout le contenu du site SharePoint est chargé, puis vous devez filtrer pour ne récupérer que vos fichiers.
Cela s’explique par le fait que le connecteur « dossier SharePoint » utilise la fonction SharePoint.Files.

Vous pourriez vous dire : « c’est un peu embêtant, mais ça fonctionne ». Et vous avez raison… mais il y a un mais. Plus le site contient de fichiers, plus Power Query mettra de temps à s’actualiser. Or, en entreprise, les sites SharePoint ont tendance à être volumineux. Résultat : vos connexions deviennent lentes et vos rapports Power BI s’actualisent difficilement.
La méthode alternative avec SharePoint.Contents : plus rapide et plus précise
Pour résoudre ce problème, vous pouvez utiliser la fonction SharePoint.Contents. Contrairement à SharePoint.Files, cette fonction cible directement les éléments que vous souhaitez, sans passer par un filtrage complet du site SharePoint.
Plus votre site SharePoint est volumineux, plus il est intéressant d’utiliser cette fonction. Vous pouvez rendre votre requête Power Query jusqu’à 5 fois plus rapide sur des sites très volumineux.
Autre avantage : cette fonction évite la création d’un dossier « Requêtes d’assistance », ce fameux dossier rempli d’éléments inutiles qui apparaît dans vos requêtes Power Query.
Alors pourquoi ne pas l’utiliser systématiquement ? La réponse est simple : il faut maîtriser un minimum le langage M de Power Query. Sans cela, il est difficile de mettre en place SharePoint.Contents.
Comment utiliser SharePoint.Contents pour cibler un seul fichier dans SharePoint
Prenons un exemple concret : nous voulons connecter Power BI à des fichiers RH présents sur le site SharePoint « Sitedeformation1 ».
Nous commencerons par récupérer un seul fichier, puis nous verrons comment consolider plusieurs fichiers.
Étape 1 : Identifier le fichier à récupérer
Dans notre exemple, le fichier Excel s’appelle « Janvier RH.xlsx ». Il se trouve à l’emplacement suivant : Sitedeformation1 > Documents > Fichiers RH > Consolidation Mois.
La feuille à récupérer s’appelle « HR_Employee_Data ».

Étape 2 : Créer une requête vide dans Power Query
- Rendez-vous dans Power Query
- Créez une requête vide

Étape 3 : Utiliser l’éditeur avancé
- Ouvrez l’éditeur avancé

- Supprimer le code
- Copiez le code suivant et adaptez-le à votre situation en modifiant les noms des dossiers, fichiers et feuilles.
- Code couleur :
- Les valeurs à adapter à votre situation
- Les valeurs (variables) pour lesquelles vous n’êtes pas obligé de changer le nom. C’est comme vous voulez.
- Les commentaires explicatifs (que vous pouvez laissez dans le copier-coller)
- Point de vigilance. Attention : « Documents » apparait souvent sous ce nom dans SharePoint, mais est en fait référencé sous le nom de « Documents partages ». C’est le cas chez moi par exemple.
let
// 1️⃣ Connexion au site SharePoint
Source = SharePoint.Contents("https://williamgoutte42.sharepoint.com/sites/Sitedeformation1", [ApiVersion = 15]),
// 2️⃣ Accès à la bibliothèque "Documents"
Docs = Source{[Name="Documents partages"]}[Content],
// 3️⃣ Navigation dans les sous-dossiers (vous pouvez en ajouter si besoin...)
Dossier1 = Docs{[Name="Fichiers RH"]}[Content],
Dossier2 = Dossier1{[Name="Consolidation Mois"]}[Content],
// 4️⃣ Filtrage sur le fichier voulu
FichiersRH = Table.SelectRows(Dossier2, each [Name] = "Janvier RH.xlsx"),
// 5️⃣ Ouverture du contenu du fichier Excel
ContenuExcel = Excel.Workbook(FichiersRH{0}[Content], true),
// 6️⃣ (Optionnel) Sélection d’une feuille précise si nécessaire
Donnees = ContenuExcel{[Item="HR_Employee_Data", Kind="Sheet"]}[Data]
in
Donnees
Comment utiliser SharePoint.Contents pour consolider plusieurs fichiers stockés dans SharePoint
La fonction SharePoint.Contents peut également servir à consolider plusieurs fichiers présents dans un dossier. La manipulation est similaire, mais légèrement plus complexe.
Elle permet de créer une table unique à partir de plusieurs fichiers, ce qui facilite l’actualisation de vos rapports Power BI et optimise la performance sur de gros sites SharePoint.
Dans ce second exemple, je vais consolider tout les fichiers qui continents les termes « RH.xlsx ». Pour ce qui est du code couleur, il est le même que dans le chapitre précédent.
let
// 1️⃣ Connexion au site SharePoint
Source = SharePoint.Contents("https://williamgoutte42.sharepoint.com/sites/Sitedeformation1", [ApiVersion = 15]),
// 2️⃣ Accès à la bibliothèque "Documents"
Docs = Source{[Name="Documents partages"]}[Content],
// 3️⃣ Navigation dans les sous-dossiers (vous pouvez en ajouter si besoin...)
Dossier1 = Docs{[Name="Fichiers RH"]}[Content],
Dossier2 = Dossier1{[Name="Consolidation Mois"]}[Content],
// 4️⃣ Filtrage sur tous les fichiers contenant "RH.xlsx"
FichiersRH = Table.SelectRows(Dossier2, each Text.Contains([Name], "RH.xlsx")),
// 5️⃣ Ouvrir le contenu Excel de chaque fichier
FichiersAvecContenu = Table.AddColumn(
FichiersRH,
"Excel",
each Excel.Workbook([Content], true)
),
// 6️⃣ Sélection de la feuille "HR_Employee_Data" dans chaque fichier
FeuillesRH = Table.AddColumn(
FichiersAvecContenu,
"FeuilleRH",
each try [Excel]{[Item="HR_Employee_Data", Kind="Sheet"]}[Data] otherwise null
),
// 7️⃣ On garde uniquement ceux qui ont bien la feuille
FeuillesFiltrees = Table.SelectRows(FeuillesRH, each [FeuilleRH] <> null),
// 8️⃣ Combinaison des feuilles en une seule table
Combine = Table.Combine(FeuillesFiltrees[FeuilleRH])
in
Combine









