الف شكر على المجهود الرائع السيد محمد هشام
يالنسبة لرصيد الختمامى قبل تاريخ البداية وهو ( رصيد اول المدة )
لوافترضنا اننا نريد اظهار المديونية للعميل من يوم 19/11/2023 حتى 30/01/2024
نريد اظهار الرصيد الختامى قبلتاريخ 19/11/2023
وجد كود
وارجو تعديله نظرا لخبرتى فى مجال الvba لاتكفى
Sub The_balance_of_the_first_duration5()
Dim x As String, z As String
Dim ws As Worksheet
Set ws = Sheets("كشف حساب")
x = WorksheetFunction.SumIfs(ws.Range("g:g"), ws.Range("c:c"), ("قيد"), ws.Range("b:b"), "<" & CLng(CDate(DateMini.Value)), ws.Range("b:b"), "<" & CLng(CDate(DateMini.Value)))
xx = WorksheetFunction.SumIfs(ws.Range("g:g"), ws.Range("c:c"), ("مبيعات"), ws.Range("b:b"), "<" & CLng(CDate(DateMini.Value)), ws.Range("b:b"), "<" & CLng(CDate(DateMini.Value)))
z = WorksheetFunction.SumIfs(ws.Range("h:h"), ws.Range("c:c"), ("مردودات مبيعات"), ws.Range("b:b"), "<" & CLng(CDate(DateMini.Value)), ws.Range("b:b"), "<" & CLng(CDate(DateMini.Value)))
zz = WorksheetFunction.SumIfs(ws.Range("h:h"), ws.Range("c:c"), ("سند قيد"), ws.Range("b:b"), "<" & CLng(CDate(DateMini.Value)), ws.Range("b:b"), "<" & CLng(CDate(DateMini.Value)))
zzz = WorksheetFunction.SumIfs(ws.Range("h:h"), ws.Range("c:c"), ("سند قبض"), ws.Range("b:b"), "<" & CLng(CDate(DateMini.Value)), ws.Range("b:b"), "<" & CLng(CDate(DateMini.Value)))
Me.Text_count.Value = Evaluate(x) + Evaluate(xx) - Evaluate(z) + Evaluate(zz) + Evaluate(zzz)
End Sub
' (Call The_balance_of_the_first_duration5)ملحوظة وضعت الكود فى الفلتر
Sub Filtre()
If Me.DateMini = "" Or Me.DateMaxi = "" Then Exit Sub
For I = 1 To 3
Me.Controls("TextBox" & I).Value = ""
Next I
S.Caption = ""
Dim Tbl()
cbx1 = Me.ComboBox1: cbx2 = Me.ComboBox2: cbx3 = Me.ComboBox3
n = 0
dMini = CDate(Me.DateMini): dMaxi = CDate(Me.DateMaxi)
Cb = Array(1, 1, 1)
For I = 0 To UBound(ColCombo): Cb(I) = ColCombo(I): Next I
For I = 1 To UBound(TabBD)
If TabBD(I, Cb(0)) Like cbx1 And TabBD(I, Cb(1)) Like cbx2 _
And TabBD(I, Cb(2)) Like cbx3 _
And TabBD(I, 2) >= dMini And TabBD(I, 2) <= dMaxi Then
n = n + 1: ReDim Preserve Tbl(1 To Irow + 1, 1 To n)
c = 0
For c = 1 To Irow: Tbl(c, n) = TabBD(I, c): Next c
Tbl(c, n) = TabBD(I, Irow + 1)
End If
Next I
If n > 0 Then
Me.ListBox1.Column = Tbl
SUMIF
Else
Me.ListBox1.Clear
End If
Call The_balance_of_the_first_duration5
End Sub
Copy of كشف حساب عميل (1).xlsm