Mise en forme d'un fichier pour l'analyser - Grand livre

Bonjour à tous,

Je travail actuellement sur des exports de divers logiciel de comptabilité et chaque export a un format bien a lui qui est en général pas facilement exploitable.

J'ai trouvé un post ici répondant pratiquement a mon besoin mais mon niveau exécrable en macro ne me permet de pas d'adapter la solution qui avait été trouvé

Le lien en question : https://forum.excel-pratique.com/excel/excel-ou-vba-mettre-en-forme-un-fichier-pour-l-analyser-14890...

Mon besoin :

  • Recopier le code comptable en première colonne du "nouveau" tableau (Jaune ou Vert dans mon tableau)
  • Recopier le nom du compte en B (Rouge ou violet dans mon tableau)
  • Ne pas prendre en compte les totaux de l'export (pour pouvoir travailler sur un TCD)(Gris dans mon tableau)
26gldc-anon.xlsx (22.23 Ko)

Le nombre de lignes / comptes / écritures sont variable donc pas de plage défini

Merci d'avoir pris le temps de me lire et pour l'aide que vous pourriez m'apporter

Aymeric,

Bonsoir

En espérant que cela réponde au besoin.

Bonjour,
Une autre proposition VBA.
Cdlt.

20gldc-anon.xlsm (28.25 Ko)
Public Sub CreateTable()
Dim tbl As Variant, arr() As Variant
Dim r As Range
Dim x As String, y As String
Dim lastRow As Long, I As Long, k As Long

    With Worksheets("Table").ListObjects(1)
        If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete
        Set r = .InsertRowRange.Cells(1)
    End With

    With Worksheets("Export")
        lastRow = .Cells(.Rows.Count, 2).End(xlUp).Row
        tbl = .Cells(12, 1).Resize(lastRow - 12, 13)
    End With

    For I = 1 To UBound(tbl)
        If tbl(I, 4) = "" Then
            x = tbl(I, 1)
            y = tbl(I, 2)
        Else
            If tbl(I, 1) <> "" Then
                ReDim Preserve arr(10, k + 1)
                arr(0, k) = x
                arr(1, k) = y
                arr(2, k) = tbl(I, 1)
                arr(3, k) = tbl(I, 2)
                arr(4, k) = tbl(I, 3)
                arr(5, k) = tbl(I, 4)
                arr(6, k) = tbl(I, 7)
                arr(7, k) = tbl(I, 9)
                arr(8, k) = tbl(I, 11)
                arr(9, k) = tbl(I, 13)
                k = k + 1
            End If
        End If
    Next I

    If k > 0 Then r.Resize(k, 10).Value = Application.Transpose(arr)

End Sub

Bonjour,

Merci beaucoup vous deux solutions fonctionne. Celle de Jean-Eric semble plus rapide à exécuter quand il y a plein de ligne.

En partant de vos macro je vais essayer de mettre en forme d'autres fichiers en fonction de d'autres export. Encore une fois milles merci !!

Cordialement,

Aymeric,

Rechercher des sujets similaires à "mise forme fichier analyser grand livre"