Macro pour Import Compta incomplète

Bonjour Le forum

Comment allez vous ?

Je vous écris car j'ai un petit problème pour adapter une macro que j'ai effectué sachant que ca fait 2 semaine que j'ai commencé LA VBA je rencontre une difficultés

Mon travail consiste a exporter des données comptable pour que mes collègues puissent les intégrer facilement mais je n'arrive pas plusieurs choses

- J'arrive a stocké des données mais je ne sais pas les afficher

- Je ne sais pas comment faire pour afficher sur plusieurs lignes les écritures comptable

-Je n'arrive pas a calculer la TVA en VBA puis l'afficher

S'il vous plait pourriez vous m'aider et m'expliqué votre façon de faire pour progresser rapidement

voici mon début de code

vous trouverez dans mon fichier excel les references pour les numero de compte

cordialement Merci !!!!!!!!!!!!!!!!!!!!!!!!!!!

Sub ExportCaisse()
     Dim F1 As Worksheet, F2 As Worksheet
     Dim Tablo, i As Long
     Dim x2 As Integer
     Dim x1 As Integer
     Dim x05 As Integer

     Set F1 = Sheets("MARS")
     Set F2 = Sheets("Compta")

     THdr = F1.Range("A2", "Z" & F1.Range("A" & Rows.Count).End(xlUp).Row).Value2
     Set dict = CreateObject("scripting.dictionary")
     dict.Add dict.Count, Array("Date", "code journal", "compte", "débit", "crédit", "Libellé pièce")     'les titles

        For i = 1 To UBound(THdr)     'IMPORTANT, CHAQUE LIGNE DOIT AJOUTER LE MÊME NOMBRE D'ELEMENTS DANS "ITEMS" = 8 !!!
            dict.Add dict.Count, Array(THdr(i, 1), ("CS"), "44572000", "", THdr(i, 4), "CENTRALISATION CAISSE")
            dict.Add dict.Count, Array(THdr(i, 1), ("CS"), "7072000", "", THdr(i, 4 \ 1.2), "CENTRALISATION CAISSE")
            dict.Add dict.Count, Array(THdr(i, 1), ("CS"), "44571000", "", THdr(i, 6), "CENTRALISATION CAISSE")
            dict.Add dict.Count, Array(THdr(i, 1), ("CS"), "7071000", "", THdr(i, 6 \ 1.1), "CENTRALISATION CAISSE")
            dict.Add dict.Count, Array(THdr(i, 1), ("CS"), "44571550", "", THdr(i, 8), "CENTRALISATION CAISSE")
            dict.Add dict.Count, Array(THdr(i, 1), ("CS"), "7070550", "", THdr(i, 8) \ 1.055, "CENTRALISATION CAISSE")
            dict.Add dict.Count, Array(THdr(i, 1), ("CS"), "5801000", THdr(i, 14), "", "CENTRALISATION CAISSE")
            dict.Add dict.Count, Array(THdr(i, 1), ("CS"), "5802000", THdr(i, 16), "", "CENTRALISATION CAISSE")
            dict.Add dict.Count, Array(THdr(i, 1), ("CS"), "5803000", THdr(i, 15), "", "CENTRALISATION CAISSE")
            dict.Add dict.Count, Array(THdr(i, 1), ("CS"), "411CREDIT", THdr(i, 17), "CENTRALISATION CAISSE")
            dict.Add dict.Count, Array(THdr(i, 1), ("CS"), "411AVOIR", THdr(i, 18), THdr(i, 19), "CENTRALISATION CAISSE")
            dict.Add dict.Count, Array(THdr(i, 1), ("CS"), "411AVOIR", , THdr(i, 19), THdr(i, 18), "CENTRALISATION CAISSE")
            dict.Add dict.Count, Array(THdr(i, 1), ("CS"), "467CADHOC", THdr(i, 22), "", "CENTRALISATION CAISSE")
            dict.Add dict.Count, Array(THdr(i, 1), ("CS"), "467CADEOS", THdr(i, 22), "", "CENTRALISATION CAISSE")
            dict.Add dict.Count, Array(THdr(i, 1), ("CS"), "467BONACHAT", THdr(i, 24), "", "CENTRALISATION CAISSE")
     Next i
   arr = Application.Index(dict.items, 0, 0)
     F2.Cells.ClearContents
     With F2.Range("A1").Resize(UBound(arr), UBound(arr, 2))
          .Value = arr
          .EntireColumn.AutoFit
          .Sort .Range("G1"), xlAscending, Header:=xlYes
     End With

End Sub
47exemplec.xlsm (19.15 Ko)

MISE A JOUR : J'ai réussi a tout bien afficher cette fois en partant d'une nouvelle base mais je n'arrive toujours pas a calculer mes TVA ca me met "Division par Zéro" et j'ai chercher partout je n'arrive pas a comprendre comment faire

Sub MacroExport()
'
' Test Macro

Const TVA2 As Double = 0.2
Const TVA1 As Double = 0.1
Const TVA0 As Double = 0.055

Dim i%, iRC&, WsC As Worksheet, THdr
Application.ScreenUpdating = False
Worksheets.Add.Name = "FiltreReglement" & Worksheets.Count + 1
Set WsC = ActiveSheet
THdr = Split("date rgt,code journal,compte,debit,credit,Libellé", ",")
    For i = 0 To UBound(THdr)
    WsC.Cells(2, 1 + i) = THdr(i)
    Next
        iRC = 3
        ArrS = Feuil1.[A1].CurrentRegion.Value2
        For i = 2 To UBound(ArrS)
        THdr(0) = Format(CDate(ArrS(i, 1)), "dd/mm/yyyy")
        THdr(1) = "CS"
        THdr(2) = "44572000"
        THdr(3) = ArrS(i, 3)
        THdr(4) = ArrS(i, 4)
        THdr(5) = "CENTRALISATION CAISSE"
        WsC.Cells(iRC, 1).Resize(1, UBound(THdr) + 1) = THdr 'Plus 1 ligne
        iRC = iRC + 1
        THdr(2) = "7072000"
        THdr(3) = ArrS(i, 3)
        THdr(4) = ArrS(i, 4) \ TVA2 'Mettre calcul tva 20
        WsC.Cells(iRC, 1).Resize(1, UBound(THdr) + 1) = THdr ' 2 ligne
        iRC = iRC + 1
        THdr(2) = "44571000"
        THdr(3) = ArrS(i, 5)
        THdr(4) = ArrS(i, 6)
        WsC.Cells(iRC, 1).Resize(1, UBound(THdr) + 1) = THdr ' 3 ligne
        iRC = iRC + 1
        THdr(2) = "7071000"
        THdr(3) = ArrS(i, 5)
        THdr(4) = ArrS(i, 6)
        WsC.Cells(iRC, 1).Resize(1, UBound(THdr) + 1) = THdr ' 4 ligne
        iRC = iRC + 1
        THdr(2) = "44571550"
        THdr(3) = ArrS(i, 7)
        THdr(4) = ArrS(i, 8)
        WsC.Cells(iRC, 1).Resize(1, UBound(THdr) + 1) = THdr ' 5 ligne
        iRC = iRC + 1
        THdr(2) = "7070550"
        THdr(3) = ArrS(i, 7)
        THdr(4) = ArrS(i, 8)
        WsC.Cells(iRC, 1).Resize(1, UBound(THdr) + 1) = THdr ' 7 ligne
        iRC = iRC + 1
        THdr(2) = "5801000"
        THdr(3) = ArrS(i, 14)
        THdr(4) = ""
        WsC.Cells(iRC, 1).Resize(1, UBound(THdr) + 1) = THdr ' 8 ligne
        iRC = iRC + 1
        THdr(2) = "5802000"
        THdr(3) = ArrS(i, 16)
        THdr(4) = ""
        WsC.Cells(iRC, 1).Resize(1, UBound(THdr) + 1) = THdr ' 9 ligne
        iRC = iRC + 1
        THdr(2) = "5803000"
        THdr(3) = ArrS(i, 15)
        THdr(4) = ""
        WsC.Cells(iRC, 1).Resize(1, UBound(THdr) + 1) = THdr ' 10 ligne
        iRC = iRC + 1
        THdr(2) = "411CREDIT"
        THdr(3) = ArrS(i, 17)
        WsC.Cells(iRC, 1).Resize(1, UBound(THdr) + 1) = THdr ' 10 ligne Avoir en negatif
        iRC = iRC + 1
        THdr(2) = "411AVOIR"
        THdr(3) = ArrS(i, 18)
        THdr(4) = ""
        WsC.Cells(iRC, 1).Resize(1, UBound(THdr) + 1) = THdr ' 10 ligne AVOIR
        iRC = iRC + 1
        THdr(2) = "411AVOIR"
        THdr(3) = ""
        THdr(4) = ArrS(i, 18)
        WsC.Cells(iRC, 1).Resize(1, UBound(THdr) + 1) = THdr ' 10 ligne
        iRC = iRC + 1
        THdr(2) = "467CADHOC"
        THdr(3) = ArrS(i, 15)
        THdr(4) = ""
        WsC.Cells(iRC, 1).Resize(1, UBound(THdr) + 1) = THdr ' 10 ligne
        iRC = iRC + 1
        THdr(2) = "467CADEOS"
        THdr(3) = ArrS(i, 12)
        THdr(4) = ""
        WsC.Cells(iRC, 1).Resize(1, UBound(THdr) + 1) = THdr ' 10 ligne
        iRC = iRC + 1
        THdr(2) = "467BONACHAT"
        THdr(3) = ArrS(i, 24)
        THdr(4) = ""
        WsC.Cells(iRC, 1).Resize(1, UBound(THdr) + 1) = THdr ' 10 ligne
        iRC = iRC + 1
        Next

    Columns("F:F").ColumnWidth = 26.14
    Columns("G:G").ColumnWidth = 31.57
    Columns("H:H").ColumnWidth = 19.14
    Columns("B:B").ColumnWidth = 15

        Range("A2:H2").Select
    Selection.Font.Bold = True
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With

        Columns("G:G").Select
    Range("G178").Activate
    Selection.Replace What:="Règlement n°1", Replacement:="", LookAt:=xlPart _
        , SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
    ActiveWindow.SmallScroll Down:=45
    Selection.Replace What:="Règlement n°2", Replacement:="", LookAt:=xlPart _
        , SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
End Sub

Hello,

Si la division ne fonctionne pas, tu peux toujours multiplier
Diviser par 0.2 revient à multiplier par 5

Bonjour DragZ

Si cela fait 2 semaines que vous avez commencé, ne soyez pas impatient et il est normal que vous rencontriez des difficultés

Ceci dit, il serait bien de mettre "Option Explicit" en début de chaque module, afin que vous définissiez toutes vos variables

Salut Mc Charon

Rechercher des sujets similaires à "macro import compta incomplete"