وهذا الكود الى اخر بيانات مدرجه وليس نطاق معين .Range("A6:AH75").Sort Key1:=.Range("L6:L75"), Order1:=xlDescending, Header:=xlNo
.Range("A6:AH75").Sort Key1:=.Range("L6:L75"), Order1:=xlDescending, Header:=xlNo
Sub ترتيب_وعرض_أرصدة_العملاء()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Dim totalDebt As Double
Set ws = ThisWorkbook.Sheets("ورقة1")
With ws
' 1. تحديد LastRow
lastRow = .Cells(.Rows.Count, "L").End(xlUp).Row
' 2. ترتيب البيانات تنازليًا حسب رصيد العميل باستخدام LastRow
.Range("A6:AH" & lastRow).Sort Key1:=.Range("L6:L" & lastRow), Order1:=xlDescending, Header:=xlNo
' 3. إخفاء الصفوف التي تحتوي على أرصدة غير موجبة أو تساوي صفرًا
For i = 6 To lastRow
If .Cells(i, "L").Value <= 0 Then
.Rows(i).Hidden = True
Else
.Rows(i).Hidden = False
End If
Next i
' 4. حساب إجمالي المديونية باستخدام LastRow
totalDebt = WorksheetFunction.SumIf(.Range("L6:L" & lastRow), ">0")
' 5. عرض إجمالي المديونية وتنسيقها
.Range("AH1").Value = totalDebt
.Range("AH1").NumberFormat = "#,##0.00 ""ج.م""" ' تنسيق مخصص
' 6. تنسيق الخلية AI1
With .Range("AI1")
.Font.Color = RGB(255, 0, 0)
.Font.Bold = True
.Value = "إجمالي المديونية: " & totalDebt
End With
End With
End Sub