اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر

أخي الكريم

يرجى تغيير اسم الظهور للغة العربية

إليك الكود التالي ..العمل على العمود E و F في ورقة 1

Sub SUMIFSUsingArrays()
    Dim A, X, Y, myName As String, Cell As Range, I As Long
    A = Sheets("Sheet1").Range("F1").CurrentRegion.Value
    
    Application.ScreenUpdating = False
        For Each Cell In Sheets("ورقة1").Range("B3:B17")
            myName = Cell.Value
            X = 0: Y = 0
            For I = 2 To UBound(A, 1)
                If A(I, 3) = myName Then X = X + A(I, 1): Y = Y + A(I, 2)
            Next I
            Cell.Offset(, 3) = X: Cell.Offset(, 4) = Y
        Next Cell
    Application.ScreenUpdating = True
End Sub

تقبل تحياتي

قام بنشر (معدل)

السلام عليكم ورحمة الله 

أستاذي الكبير أبو البراء 

جزاك الله كل خير على هذا العمل المميز والأكثر من رائع

لكنه يوجد طلب أخير لي 

وهو تنفيذ الكود بتاعك على هذا الملف المرفق يوجد فيه ورقتين

ورقة اليومية عمود (H) هو المدين

ورقة اليومية عمود (I) هو الدائن

يرجى حسب المجاميع في ورقة ميزان المراجعة بالكود عوضاً عن معادلة sumifs

الكود ينفذ المطلوب على العمود (E) و(F) في ورقة ميزان المراجعة

المطلوب ايضاً تنفيذ الكود على العمود © و(D) في ورقة ميزان المراجعة

 

لوسمحت أخي أبو البراء شرح الكود

وشكراً

أخوكم في الله 

أنس دروبي

ميزان المراجعة بالكود.zip

تم تعديل بواسطه Creation World
قام بنشر

أخي الكريم أنس دروبي

يرجى تغيير اسم الظهور للغة العربية

Sub SUMIFSUsingArrays()
    Dim A, X, Y, myName As String, Cell As Range, I As Long
    Dim WS As Worksheet, SH As Worksheet, Rng As Range
    Set WS = Sheets("دفتر اليومية"): Set SH = Sheets("ميزان المراجعة")
    Set Rng = SH.Range("B8:B" & SH.Cells(Rows.Count, 2).End(xlUp).Row)
    A = WS.Range("A5:K" & WS.Cells(Rows.Count, 1).End(xlUp).Row)
    
    Application.ScreenUpdating = False
        For Each Cell In Rng
            If Cell.Value <> 0 Then
                myName = Cell.Value
                X = 0: Y = 0
                For I = 1 To UBound(A, 1)
                    On Error Resume Next
                    If A(I, 2) = myName Then
                        If Not IsEmpty(A(I, 8)) Then X = X + A(I, 8)
                        If Not IsEmpty(A(I, 9)) Then Y = Y + A(I, 9)
                    End If
                Next I
                Cell.Offset(, 3) = X: Cell.Offset(, 4) = Y
                With SH.Range("C8:C" & SH.Cells(Rows.Count, 2).End(xlUp).Row)
                    .Formula = "=IF(E8>F8,E8-F8,"""")"
                    .Value = .Value
                End With
                With SH.Range("D8:D" & SH.Cells(Rows.Count, 2).End(xlUp).Row)
                    .Formula = "=IF(F8>E8,F8-E8,"""")"
                    .Value = .Value
                End With
            End If
        Next Cell
    Application.ScreenUpdating = True
End Sub

ميزان المراجعة بالكود.rar

قام بنشر

السلام عليكم ورحمة الله 

أخي واستاذي أبو البراء لم يعطي الكود النتائج صحيحة

أدخل الى ورقة اليومية وأعمل فلترة باسم الحساب للحساب (هايل)

سوف تلاحظ فرق في النتائج في ميزان المراجعة

هذا الملف المرفق وفيه الكود بتاعك

وشكراً

ميزان المراجعة بالكود.zip

قام بنشر

اعتقد النتائج صحيحة

انظر للخلية H22 على سبيل المثال .. الظاهر لديك 5181 لأنك منسق الخلايا بهذا الشكل بينما لو نظرت إلى شريط المعادلة ستجد أن الرقم هو 5181.34715025907

شوف بياناتك أولاً

قام بنشر

اخي ابو البراء العزيز

يوجد خطأ في جمع المبالغ في النتائج

يعني مثلا حساب (هايل)

يوجد خطأ فيه في ورقة ميزان المراجعة 

في ورقة دفتر اليومية توجد عليه حركات في جدول المدين وجدول الدائن

ظهر في ميزان المراجعة فقط الحركات المدينة 

لاحظ ذلك في الملف المرفق السابق 

وشكراً

قام بنشر

أخي الكريم أنا لا أفهم لغة الدائن والمدين

راجع الملفات المرفقة من قبلكم وشوف النتائج وراجع الملف المرفق من قبلي وشوف النتائج ..النتائج واحدة (لا أفهم في المحاسبة ..!!)

قام بنشر

السلام عليكم ورحمة الله وبركاته

أخي أبو البراء صدقت وانا أعتذر جداً لم أكن منتبه الى نطاق البحث الذي ياخذ منه الميزان

بس لو سمحت أخي البراء ومن الأساتذة الكرام 

الكود بطيء جداً في التعامل في الملف المرفق يوجدة أخي أبو البراء أكثر من 2000 إدخال في ورقة اليومية 

وفي ورقة ميزان المراجعة يوجد 1000 حساب تقريباً 

عند الضغط يستغرق الكود في تنفيذ العملية حوالي الدقيقة الواحدة او اكثر في تنفيذ المطلوب

هل يوجد حل لهذه القصة

----------------------------------------------------------------------------------------------

الطلب الثاني أخي ابو البراء 

هو أن يقوم أظهار النتائج في ورقة ميزان المراجعة بناء على تاريخين أو تاريخ واحد

 

في الملف المرفق وضعت خليتين في ورقة ميزان المراجعة

الخلية الاولى يوجد فيها من تاريخ

الخلية الثانية يوجد فيها الى تاريخ

 

المطلوب هو أظهار النتائج بناء على التواريخ 

علماً يوجد في الادخالات تواريخ رجعية يعني 

2-6-2015

يوجد بعدها في سطر أخر

31-5-2015

مثلا 

 

هل يوجد حل لكي يجمع الرصيد القديم مع الرصيد الحديث إذا كان تاريخ النهاية هو 2-6-2015

وأن يجمع الرصيد القديم فقط  إذا كان تاريخ النهاية هو 31-5-2015

 

والسلام عليكم 

 

أرجو تثبيت الموضوع 

لأنه صراحة فكرة جديدة بحثت ولم أجد ميزان مراجعة بالكودات البرمجية

 

ميزان المراجعة بالكود.zip

زائر
هذا الموضوع مغلق.
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information