Microsoft 365 Macro VBA pour automatisation écritures comptables

Niko2149

XLDnaute Nouveau
Bonjour,

j'essaie de réaliser une macro pour automatiser les écritures comptables. Je ne vous cache pas que si je vous sollicite, je galère 😥. Je vous joins le fichier excel, dans le premier onglet (sheet0) se trouvent les données "source". Dans le second onglet (Ecritures), se trouvent un exemple type que je voudrais reproduire..
Si quelqu'un pouvait me sortir de la panade... Merci par avance
 

Pièces jointes

  • Jeremy.xlsx
    22.4 KB · Affichages: 12

alexga78

XLDnaute Occasionnel
Bonsoir à tous,

un essai avec Power Query, si j'ai bien compris la demande...

PowerQuery:
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    cols = {{"CODE JOURNAL", "DATE", "COMPTE", "INTITULE", "PIECE1"}, {"PIECE2", "DEBIT", "CREDIT", "COMPTE AUX"}, Table.ColumnNames(Source)},
    #"Filled down" = Table.SelectRows(Table.FillDown(Source, {cols{2}{2}}), each Record.Field(_, cols{2}{2}) <> null),
    #"Grouped Rows" = Table.Combine(Table.Group(#"Filled down", cols{2}{2},
      {{"x", each
          [ count = Table.RowCount(_),
            a = {"ENC"},
            b = {Date.From (Table.Column(_, cols{2}{0}){0})},
            c = {"411000", "627510", "511100"},
            d = {"Encaissement Paypal"},
            e = {Date.From(Table.Column(_, cols{2}{1}){1})},
            f = {null},
            g = Table.Column(_, cols{2}{4}) ,
            h = {null} & List.Transform(List.Skip(g), Number.Abs),
            i = {List.First(g), null, null},
            j = {"CB"},
            tbl = Table.FirstN(Table.FillDown(Table.FromColumns({a,b,c,d,e,f,h,i,j}, cols{0} & cols{1}), cols{0}), count)
          ] [tbl]
      }})[x])
in
    #"Grouped Rows"

Bonne soirée
 

Niko2149

XLDnaute Nouveau
Bonsoir à tous,

un essai avec Power Query, si j'ai bien compris la demande...

PowerQuery:
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    cols = {{"CODE JOURNAL", "DATE", "COMPTE", "INTITULE", "PIECE1"}, {"PIECE2", "DEBIT", "CREDIT", "COMPTE AUX"}, Table.ColumnNames(Source)},
    #"Filled down" = Table.SelectRows(Table.FillDown(Source, {cols{2}{2}}), each Record.Field(_, cols{2}{2}) <> null),
    #"Grouped Rows" = Table.Combine(Table.Group(#"Filled down", cols{2}{2},
      {{"x", each
          [ count = Table.RowCount(_),
            a = {"ENC"},
            b = {Date.From (Table.Column(_, cols{2}{0}){0})},
            c = {"411000", "627510", "511100"},
            d = {"Encaissement Paypal"},
            e = {Date.From(Table.Column(_, cols{2}{1}){1})},
            f = {null},
            g = Table.Column(_, cols{2}{4}) ,
            h = {null} & List.Transform(List.Skip(g), Number.Abs),
            i = {List.First(g), null, null},
            j = {"CB"},
            tbl = Table.FirstN(Table.FillDown(Table.FromColumns({a,b,c,d,e,f,h,i,j}, cols{0} & cols{1}), cols{0}), count)
          ] [tbl]
      }})[x])
in
    #"Grouped Rows"

Bonne soirée
Bonjour et merci beaucoup pour votre retour. Je ne connais pas Power Query. J'ai suivi quelques tutos pour "importer" votre script mais une erreur m'indique qu'il n'existe pas de Table1 🤨
 

alexga78

XLDnaute Occasionnel
Bonjour et merci beaucoup pour votre retour. Je ne connais pas Power Query. J'ai suivi quelques tutos pour "importer" votre script mais une erreur m'indique qu'il n'existe pas de Table1 🤨
Bonjour @Niko2149, le forum,
il faut créer un tableau structuré avec vos données et le nommer "Table1".

Bonne journée
 

Pièces jointes

  • Jeremy.xlsx
    39.5 KB · Affichages: 8
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 093
Messages
2 116 138
Membres
112 669
dernier inscrit
Guigui2502