Formule VBA incomplète
bonjour a tous c'est encore moi
j'espère que vous allez bien
je vous écris aujourd'hui car j'ai deux petit soucis
j'ai une feuille nommée BASE avec des données comptable a l'intérieur (créer par moi même) et je dois générer des écritures comptables avec ma macro (ce que j'arrive a faire ) mais je n'arrive pas a bien afficher le débit et le crédit , Il y a aussi sur le fichier base la colonne paiement mes valeurs commencent par des 0000000 mais je veux les enlever si c'est possible avec un code VBA car je sais le faire avec CTRL + H mais pas avec une macro . voici
mon code et un fichier d'exemples
cordialement
Sub Macro()
'
' Test Macro
'
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,débit,crédit,Libellïé,pièce,référence piéce", ",")
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)))
THdr(1) = Arrs(i, 2)
THdr(2) = Arrs(i, 3)
THdr(3) = Arrs(i, 4)
THdr(4) = Arrs(i, 4)
THdr(5) = Arrs(i, 6)
THdr(6) = Arrs(i, 7)
WsC.Cells(iRC, 1).Resize(1, UBound(THdr) + 1) = THdr
iRC = iRC + 1
Next
End SubBonjour,
Une autre proposition, pour le principe, à adapter.
Tu dois maintenant gérér ta date de réglement.
Cdlt.
Option Explicit
Public Sub TransformData()
Dim wb As Workbook, ws As Worksheet, ws2 As Worksheet
Dim tbl As Variant, arr() As Variant
Dim I As Long, k As Long
Dim n As Double
Set wb = ActiveWorkbook
n = wb.Worksheets.Count
Set ws = wb.Worksheets("Base")
tbl = ws.Cells(1).CurrentRegion.Value2
Set ws2 = Worksheets.Add(after:=Worksheets(Worksheets.Count))
ws2.Name = "FiltreReglement" & n
For I = 2 To UBound(tbl)
ReDim Preserve arr(8, k + 1)
arr(0, k) = Format(CDate(tbl(I, 2)))
arr(1, k) = tbl(I, 3)
arr(2, k) = tbl(I, 4)
If tbl(I, 9) = "Debit" Then
arr(3, k) = tbl(I, 8)
Else
arr(4, k) = tbl(I, 8)
End If
arr(5, k) = tbl(I, 6)
arr(6, k) = tbl(I, 7)
arr(7, k) = tbl(I, 11)
k = k + 1
Next I
With ws2
.Cells(2, 1).Resize(, 8).Value = Array("date rgt", "code journal", "compte", "débit", "crédit", "Libellé", "pièce", "référence piéce")
.Cells(3, 1).Resize(k, 8).Value = Application.Transpose(arr)
End With
End Submerci beaucoup mon sieur j'ai compris la trame vous avez mis une fonctions if dans le tableau directement
Merci bcp :)
RE
j'ai essayer de trouver pour changer la date mais je n'y arrive pas depuis tout cette matinée est ce que pourriez vous m'aider???
