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
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 SubHello,
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