Microsoft 365 Macro VBA pour automatisation écritures comptables

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
 
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 🤨
 
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

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
472
Réponses
3
Affichages
453
Retour