Power Query Copier étapes transformation tableau

Etoto

XLDnaute Barbatruc
Bonjour,

Est-ce possible de copier les étapes appliquées sur un tableau dans PQ vers un autre tableau. Faire que le tableau fasse exactement les même étapes de transformation sur un autre tableau.

Est-ce possible ? Parce que j'ai un tableau sur chaque mois d'une année et je voudrais savoir si y'a un moyen d'éviter de faire de répétitions.

PS : J'essaie de mettre mon fichier en ordre avant de vous le joindre.
 
Solution
RE
VB:
let
    Source = Web.Page(Web.Contents("https://www.sfl.ch/fr/superleague/calendrier/saison/archiveseason/202122/sorting/date/")),
    #"Lignes filtrées" = Table.SelectRows(Source, each ([Source] = "Table")),
    #"Autres colonnes supprimées" = Table.SelectColumns(#"Lignes filtrées",{"Caption", "Data"}),
    Source2 = Table.ExpandTableColumn(#"Autres colonnes supprimées", "Data", {"Column1", "Column2", "Column3", "Column4", "Column5"}, {"Column1", "Column2", "Column3", "Column4", "Column5"}),
    #"Fractionner la colonne par délimiteur" = Table.SplitColumn(Source2, "Column1", Splitter.SplitTextByEachDelimiter({"#(tab)"}, QuoteStyle.Csv, true), {"Column1.1", "Date"}),
    #"Valeur remplacée" = Table.ReplaceValue(#"Fractionner la colonne...

Wayki

XLDnaute Impliqué
Salut,
Je l'avais fait avec VBA et l'enregistreur de macro.
Tu créé ta requête 1 fois et tu stop ton enregistrement, ça enregistre toutes les étapes, il te manquera qu'à trouver la solution pour appliquer à ton nouveau tableau.
A +
 

Etoto

XLDnaute Barbatruc
Salut,
Je l'avais fait avec VBA et l'enregistreur de macro.
Tu créé ta requête 1 fois et tu stop ton enregistrement, ça enregistre toutes les étapes, il te manquera qu'à trouver la solution pour appliquer à ton nouveau tableau.
A +
Hello, oui mais je n'ai pas été assez précis, il faut que tous les tableaux soient à la fin sur mon fichier Excel. Ou alors j'ai mal compris.
 

MP59

XLDnaute Occasionnel
Tu ouvres PQ avec la requête de feuille 12 09/21.
Accueil, éditeur avancé, tu copies le code à partir de #"Type modifié" jusque en bas.
tu colles ce code dans chacune des autres requêtes et tu changes le
#"Type modifié" = Table.TransformColumnTypes(Data2 pour faire correspondre au Data de la ligne précédente.
le travail est fait pour oct et nov.
 

Etoto

XLDnaute Barbatruc
Tu ouvres PQ avec la requête de feuille 12 09/21.
Accueil, éditeur avancé, tu copies le code à partir de #"Type modifié" jusque en bas.
tu colles ce code dans chacune des autres requêtes et tu changes le
#"Type modifié" = Table.TransformColumnTypes(Data2 pour faire correspondre au Data de la ligne précédente.
le travail est fait pour oct et nov.
Super cool ! C'est comme un enregistreur de macros mais à la façon de Power Query.

Mais pourquoi j'ai une erreur sur mai 2022 voici le code :
Code:
let
    Source = Web.Page(Web.Contents("https://www.sfl.ch/fr/superleague/calendrier/saison/archiveseason/202122/sorting/date/")),
    Data10 = Source{10}[Data],
    #"Type modifié" = Table.TransformColumnTypes(Data10,{{"Column1", type text}, {"Column2", type text}, {"Column3", type text}, {"Column4", type text}, {"Column5", type text}})
    #"Derniers caractères insérés" = Table.AddColumn(#"Type modifié", "Derniers caractères", each Text.End([Column1], 8), type text),
    #"Colonnes permutées" = Table.ReorderColumns(#"Derniers caractères insérés",{"Column1", "Derniers caractères", "Column2", "Column3", "Column4", "Column5"}),
    #"Colonnes supprimées" = Table.RemoveColumns(#"Colonnes permutées",{"Column1"}),
    #"Type modifié1" = Table.TransformColumnTypes(#"Colonnes supprimées",{{"Derniers caractères", type date}}),
    #"Colonnes supprimées1" = Table.RemoveColumns(#"Type modifié1",{"Column2"}),
    #"Colonnes renommées" = Table.RenameColumns(#"Colonnes supprimées1",{{"Column3", "Equipe dom"}, {"Column5", "Equipe ext"}, {"Derniers caractères", "Date"}}),
    #"Colonnes permutées1" = Table.ReorderColumns(#"Colonnes renommées",{"Date", "Equipe dom", "Equipe ext", "Column4"}),
    #"Premiers caractères insérés" = Table.AddColumn(#"Colonnes permutées1", "Premiers caractères", each Text.Start(Text.From([Column4], "fr-CH"), 2), type text),
    #"Colonnes renommées1" = Table.RenameColumns(#"Premiers caractères insérés",{{"Premiers caractères", "But dom"}}),
    #"Derniers caractères insérés1" = Table.AddColumn(#"Colonnes renommées1", "Derniers caractères", each Text.End(Text.From([Column4], "fr-CH"), 2), type text),
    #"Colonnes renommées2" = Table.RenameColumns(#"Derniers caractères insérés1",{{"Derniers caractères", "But ext"}}),
    #"Type modifié2" = Table.TransformColumnTypes(#"Colonnes renommées2",{{"But dom", Int64.Type}, {"But ext", Int64.Type}}),
    #"Colonnes supprimées2" = Table.RemoveColumns(#"Type modifié2",{"Column4"})
in
    #"Colonnes supprimées2"
 

Wayki

XLDnaute Impliqué
Voici mon code :
VB:
Sub Créer_requête()
'
' Macro5 Macro
'

'
fin = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row + 1
Nom = InputBox("entrer le nom de la requête")

    ActiveWorkbook.Queries.Add Name:=Nom, Formula:= _
        "let" & Chr(13) & "" & Chr(10) & "    Source = Web.Page(Web.Contents(""https://www.sfl.ch/fr/superleague/calendrier/saison/archiveseason/202122/sorting/date/""))," & Chr(13) & "" & Chr(10) & "    Data2 = Source{2}[Data]," & Chr(13) & "" & Chr(10) & "    #""Type modifié"" = Table.TransformColumnTypes(Data2,{{""Column1"", type text}, {""Column2"", type time}, {""Column3"", type text}, {""Column4"", type time}, {""Column5"", type text}})," & Chr(13) & "" & Chr(10) & "    #""Derni" & _
        "ers caractères insérés"" = Table.AddColumn(#""Type modifié"", ""Derniers caractères"", each Text.End([Column1], 8), type text)," & Chr(13) & "" & Chr(10) & "    #""Colonnes permutées"" = Table.ReorderColumns(#""Derniers caractères insérés"",{""Column1"", ""Derniers caractères"", ""Column2"", ""Column3"", ""Column4"", ""Column5""})," & Chr(13) & "" & Chr(10) & "    #""Colonnes supprimées"" = Table.RemoveColumns(#""Colonne" & _
        "s permutées"",{""Column1""})," & Chr(13) & "" & Chr(10) & "    #""Type modifié1"" = Table.TransformColumnTypes(#""Colonnes supprimées"",{{""Derniers caractères"", type date}})," & Chr(13) & "" & Chr(10) & "    #""Colonnes supprimées1"" = Table.RemoveColumns(#""Type modifié1"",{""Column2""})," & Chr(13) & "" & Chr(10) & "    #""Colonnes renommées"" = Table.RenameColumns(#""Colonnes supprimées1"",{{""Column3"", ""Equipe dom""}, {""Column5"", ""Equipe" & _
        " ext""}, {""Derniers caractères"", ""Date""}})," & Chr(13) & "" & Chr(10) & "    #""Colonnes permutées1"" = Table.ReorderColumns(#""Colonnes renommées"",{""Date"", ""Equipe dom"", ""Equipe ext"", ""Column4""})," & Chr(13) & "" & Chr(10) & "    #""Premiers caractères insérés"" = Table.AddColumn(#""Colonnes permutées1"", ""Premiers caractères"", each Text.Start(Text.From([Column4], ""fr-CH""), 2), type text)," & Chr(13) & "" & Chr(10) & "    #""Colon" & _
        "nes renommées1"" = Table.RenameColumns(#""Premiers caractères insérés"",{{""Premiers caractères"", ""But dom""}})," & Chr(13) & "" & Chr(10) & "    #""Derniers caractères insérés1"" = Table.AddColumn(#""Colonnes renommées1"", ""Derniers caractères"", each Text.End(Text.From([Column4], ""fr-CH""), 2), type text)," & Chr(13) & "" & Chr(10) & "    #""Colonnes renommées2"" = Table.RenameColumns(#""Derniers caractères insérés" & _
        "1"",{{""Derniers caractères"", ""But ext""}})," & Chr(13) & "" & Chr(10) & "    #""Type modifié2"" = Table.TransformColumnTypes(#""Colonnes renommées2"",{{""But dom"", Int64.Type}, {""But ext"", Int64.Type}})," & Chr(13) & "" & Chr(10) & "    #""Colonnes supprimées2"" = Table.RemoveColumns(#""Type modifié2"",{""Column4""})" & Chr(13) & "" & Chr(10) & "in" & Chr(13) & "" & Chr(10) & "    #""Colonnes supprimées2"""
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:= _
        "OLEDB;Provider=Microsoft.Mashup.OleDb.1;Data Source=$Workbook$;Location=" & Nom & ";Extended Properties=""""" _
        , Destination:=Range("$A$" & fin)).QueryTable
        .CommandType = xlCmdSql
        .CommandText = Array("SELECT * FROM [" & Nom & "]")
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = False
        .ListObject.DisplayName = Nom
        .Refresh BackgroundQuery:=False
    End With

End Sub

J'ai repris la mise en forme de septembre, le seul problème que je rencontre c'est que du coup les données sont aussi celles de septembre.
Il faut que j'arrive à variabiliser de façon à pouvoir choisir le mois que l'on veut.
A +
 

MP59

XLDnaute Occasionnel
#"Type modifié" = Table.TransformColumnTypes(Data10,{{"Column1", type text}, {"Column2", type time}, {"Column3", type text}, {"Column4", type time}, {"Column5", type text}}),
avec la virgule à la fin
et non
#"Type modifié" = Table.TransformColumnTypes(Data10,{{"Column1", type text}, {"Column2", type text}, {"Column3", type text}, {"Column4", type text}, {"Column5", type text}})
 

Wayki

XLDnaute Impliqué
Ci-joint ma proposition,
Il faut entrer un nom de requête qui n'existe pas déjà en premier lieu,
Puis rentrer le numéro de la table correspondante dans un second temps,
Le tableau vient se greffer à la suite du précédent.
A +
 

Pièces jointes

  • Pq XLD.xlsm
    72.7 KB · Affichages: 3

Discussions similaires

Réponses
15
Affichages
478

Membres actuellement en ligne

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa