Bonjour
Dans le bout de code Power Query ci-dessous, j'essaye de comprendre à quoi correspond "Feuil1_Sheet" ains i que [Data]
Est-ce que "Feuil1_Sheet" est juste le nom d'une étape? Et est-ce que [Data] est le nom de la table de la feuille "RECAP_FORM"?
let
Source = Excel.Workbook(File.Contents("C:\Users\toto.xlsx"), null, true), Feuil1_Sheet = Source{[Item="RECAP_FORM",Kind="Sheet"]}[Data],
TraiterDonnees = Table.SelectRows(Table.PromoteHeaders(Feuil1_Sheet, [PromoteAllScalars=true]), each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null}))),
#"Type modifié" = Table.TransformColumnTypes(TraiterDonnees,{{"Date de la demande", type date}}),
les liens sharepoint sont effectivement une difficulté...
Tu ouvre ton fichier dans l'application excezl.
puis tu prends les info du fichier et tu copie le lien vers le ficheir: Regarde la pièce jointe 1158815
Retourne un enregistrement qui contient un champ (colonne) nommé [Data] qui contient la donnée désirée.
Placez vous sur l'étape "Feuil1_Sheet" supprimez [Data] (gardez la virgule qui suit puis voyez ce qui s'affiche dans l'éditeur : un enregistrement (record) avec un champ nommé "Data".
Remettez [Data] pour retourner à l'état initial de l'étape.
PQ travaille essentiellement avec les tables, liste et enregistrement tout ce qui se trouve entre crochets concerne en général les champs. Ce qui se trouve en accolades {} concerne les items de liste ou table
Source{0} = enregistrement 1 de la table renvoyée par Source
Source{[Item="RECAP_FORM",Kind="Sheet"]} : Sélection de l'enregistrement dont le champs "Item" est = "RECAP_FORM" et le champ "Kind" est égale ) "Sheet"
C'est une sélection de ligne de table donc qui renvoie un enregistrement qui contiendra un champ nommé [Data]
let
Source = Excel.CurrentWorkbook(){[Name="tbl_voiture"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Qui", type text}, {"Voiture", type text}})
in
#"Changed Type"
on peut le lire comme:
Je défini une table "source" et je met dedans le contenu de la table d'excel "tbl_voiture"
Je défini une table "Changed Type" et je mets dedans le contenu de la table "source" et je change le type de colonne en texte.
let
Source = Excel.CurrentWorkbook(){[Name="tbl_voiture"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Qui", type text}, {"Voiture", type text}})
in
#"Changed Type"
on peut le lire comme:
Je défini une table "source" et je met dedans le contenu de la table d'excel "tbl_voiture"
Je défini une table "Changed Type" et je mets dedans le contenu de la table "source" et je change le type de colonne en texte.
Merci Hasco et Merinos pour toutes ces infos
Voic le début de ma requête
let
Source = Excel.CurrentWorkbook(){[Name="RECAP_FORM"]}[Content],
Feuil1_Sheet = Source{[Item="RECAP_FORM",Kind="Sheet"]}[Data],
TraiterDonnees = Table.SelectRows(Table.PromoteHeaders(Feuil1_Sheet, [PromoteAllScalars=true]), each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null}))),
#"Type modifié" = Table.TransformColumnTypes(TraiterDonnees,{{"Date de la demande", type date}}),
Par contre, j'ai une erreur dès la deuxième étape, je ne comprends pas pourquoi cette étape ne s'appelle pas "Feuil1_Sheet" mais Navigation et surtout j'ai l'erreur ci-dessous que je ne comprends pas du tout!
Y'a t'il une adaptation à faire dans mes données sources qui sont dans l'onglet est "RECAP_FORMS"?
Merci
let
Source = Excel.Workbook(File.Contents("C:\Users\jXXX\Documents\Training Excel\training given 8.xlsx"), null, true),
#"Ecrire le temps_Sheet" = Source{[Item="Ecrire le temps",Kind="Sheet"]}[Data],
#"Promoted Headers" = Table.PromoteHeaders(#"Ecrire le temps_Sheet", [PromoteAllScalars=true]),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Column1", type text}, {"en date ", type datetime}, {"Column3", type any}, {"Column4", type any}, {"en chiffres", type number}, {"Column6", type any}, {"en heures seulement", type datetime}})
in
#"Changed Type"
je lis:
table source: le fichier excel "training given 8.xlsx"
table "Ecrire le temps_Sheet" basé sur "source" on garde la feuille nommée "Ecrire le temps"
table "Promoted Headers" basé sur "Ecrire le temps_Sheet"...
Ton message d'erreur:
le feuille "RECAP_FORM" existe t'elle encore?
let
Source = Excel.Workbook(File.Contents("C:\Users\jpw857\OneDrive - Sibelga\Documents\Training Excel\training given 8.xlsx"), null, true),
#"Ecrire le stroumpf" = Source{[Item="Ecrire le temps",Kind="Sheet"]}[Data],
#"Promoted Headers" = Table.PromoteHeaders(#"Ecrire le stroumpf", [PromoteAllScalars=true]),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Column1", type text}, {"en date ", type datetime}, {"Column3", type any}, {"Column4", type any}, {"en chiffres", type number}, {"Column6", type any}, {"en heures seulement", type datetime}})
in
#"Changed Type"
Cela fonctionne toujours... et l'étape s'appele toujours navigation...
let
Source = Excel.Workbook(File.Contents("C:\Users\jXXX\Documents\Training Excel\training given 8.xlsx"), null, true),
#"Ecrire le temps_Sheet" = Source{[Item="Ecrire le temps",Kind="Sheet"]}[Data],
#"Promoted Headers" = Table.PromoteHeaders(#"Ecrire le temps_Sheet", [PromoteAllScalars=true]),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Column1", type text}, {"en date ", type datetime}, {"Column3", type any}, {"Column4", type any}, {"en chiffres", type number}, {"Column6", type any}, {"en heures seulement", type datetime}})
in
#"Changed Type"
je lis:
table source: le fichier excel "training given 8.xlsx"
table "Ecrire le temps_Sheet" basé sur "source" on garde la feuille nommée "Ecrire le temps"
table "Promoted Headers" basé sur "Ecrire le temps_Sheet"...
Oui la feuille RECAP_FORM exite encore
En fait c'est une personne externe à mon entreprise qui a développé cette requête et j'essaye de l'adapter à l'environnement de mon entreprise
Le code intial qui m'a été envoyé est celui-ci :
let
Source = Excel.Workbook(File.Contents("C:\Users\am\Documents\tutu.xlsx"), null, true),
Feuil1_Sheet = Source{[Item="RECAP_FORM",Kind="Sheet"]}[Data],
TraiterDonnees = Table.SelectRows(Table.PromoteHeaders(Feuil1_Sheet, [PromoteAllScalars=true]), each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null}))),
#"Type modifié" = Table.TransformColumnTypes(TraiterDonnees,{{"Date de la demande", type date}}),
J'ai donc changé la première ligne puisque le fichier Excel n'est pls à la même source mais il est hébergé sur Sharepoint
J'ai donc remplacé
Feuil1_Sheet = Source{[Item="RECAP_FORM",Kind="Sheet"]}[Data],
TraiterDonnees = Table.SelectRows(Table.PromoteHeaders(Feuil1_Sheet, [PromoteAllScalars=true]), each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null}))),
#"Type modifié" = Table.TransformColumnTypes(TraiterDonnees,{{"Date de la demande", type date}}),
par
let
Source = Excel.CurrentWorkbook(){[Name="RECAP_FORM"]}[Content],
Feuil1_Sheet = Source{[Item="RECAP_FORM",Kind="Sheet"]}[Data],
TraiterDonnees = Table.SelectRows(Table.PromoteHeaders(Feuil1_Sheet, [PromoteAllScalars=true]), each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null}))),
#"Type modifié" = Table.TransformColumnTypes(TraiterDonnees,{{"Date de la demande", type date}}),
J'ai quand même essayé de mettre le lien du SharePoint à l'endroit où j'ai mis le fichier mais j'ai la même erreur,
A tester sous réserve que la feuille "RECAP_FORM" avec les données se trouve dans le même fichier :
Si vous utilisez : Source = Excel.CurrentWorkbook(){[Name="RECAP_FORM"]}[Content],
Vous n'avez plus besoin de la ligne ci-dessous à supprimer :
Feuil1_Sheet = Source{[Item="RECAP_FORM",Kind="Sheet"]}[Data],
Si le problème persiste, cliquez sur le bouton "Modifier les paramètres" ou bien "Accéder à l'erreur" du bandeau jaune et sélectionnez la feuille souhaitée.
les liens sharepoint sont effectivement une difficulté...
Tu ouvre ton fichier dans l'application excezl.
puis tu prends les info du fichier et tu copie le lien vers le ficheir: Regarde la pièce jointe 1158815