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

13macroex.xlsm (15.70 Ko)

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 Sub

Salut,

Dans le passage ci-dessous, tu as deux fois une référence à 4. J'en ai neutralisée une et l'ai remplacée par une référence à 5 et ça semble donner ce que tu souhaites.

Cordialement.

image

Bonjour,
Une autre proposition, pour le principe, à adapter.
Tu dois maintenant gérér ta date de réglement.
Cdlt.

8macroex-v1.xlsm (19.59 Ko)
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 Sub

merci 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???

Rechercher des sujets similaires à "formule vba incomplete"