اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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

قام بنشر

السلام عليكم 

هذا المرفق به كود لمعادلة SUMIF

هل من الممكن تغير الكود أو تعديله ليصبح أكثر سرعة فى الاستجابه نظراً

لطول الشيت وكثرة التسجيلات ..

sumif.rar

قام بنشر

أخي العزيز / samycalls

أضف هذا الأسطر في بدايةالكود

Application.EnableEvents = False
Application.ScreenUpdating = False
Application.Calculation = xlManual

ثم هذه الأسطر في نهاية الكود لإلغاء عمل الأسطر السابقة 

Application.Calculation = xlAutomatic
Application.ScreenUpdating = True
Application.EnableEvents = True

ليصبح الكود أسرع  وهي طريقة تتناسب مع أغلب الأكواد  وشكل الكود سكون هكذا 


Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Application.ScreenUpdating = False
Application.Calculation = xlManual
r = ActiveCell.Row
c = ActiveCell.Column
If r > 11 And c = 9 Then
Sheets("2").Range("d8:e8") = Sheets("2").Range("d1:e1").Formula
Sheets("2").Range("d8:e8").AutoFill Destination:=Sheets("2").Range("d8:e65"), Type:=xlFillDefault
Sheets("2").Range("C8:E65") = Sheets("2").Range("C8:E65").Value

Sheets("2").Range("d77:e77") = Sheets("2").Range("d2:e2").Formula
Sheets("2").Range("d77:e77").AutoFill Destination:=Sheets("2").Range("d77:e113"), Type:=xlFillDefault
Sheets("2").Range("d113:e113").Copy
Sheets("2").Range("d115").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False

Sheets("2").Range("d77:e113") = Sheets("2").Range("d77:e113").Value
Sheets("2").Range("d115:e115").AutoFill Destination:=Sheets("2").Range("d115:e119"), Type:=xlFillDefault
Sheets("2").Range("d115:e119") = Sheets("2").Range("d115:e119").Value
Else
End If
Application.Calculation = xlAutomatic
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub

قام بنشر

الأخ الكريم الشهابى ..

كل التحية ..

بتطبيق الكود الذى ذكرته يحدث خلل فى الميزان فى الورقة 2 ..

 

قام بنشر

السلام عليكم ..

ارجو من رواد وزوار هذا الموقع الهام ممن شاهدوا هذا الموضوع إفادتتى عنه .

هل هناك حل لما طرح أم لايوجد حل .. كل الشكر

قام بنشر

لايأس مع الحياة ولا حياة مع اليأس ..

ربما يحدث صدى هذة الكلمات دوى فيعلم أصدقائنا واساتذتنا أننا فى انتظار

ردودكم التى تنير لنا الطريق وتفتح لنا آفاق للمعرفة.. فنتعلم ونمتن ونشكر ..

قام بنشر

أخي الفاضل .إذا لم تجد رد على موضوعك فمعنى هذا أن الطلب مبهم وغير واااااااااضح للجميع ولذلك لا يوجد ردود .. المشكلة ليست في رفع الموضوع ..

حاول مرة أخرى توضح الطلب وارفق شكل النتائج المرجوة ..

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

أخى الكريم .. ياسر

الملف المرفق خاص بتسجيل قيود يومية من خلالها وبمعادلة sumif نحصل على ميزان

للمراجعة بالمجامبع وبالأرصدة ..

المشكلة هو أن ورقة تسجيل قيود اليومية عدد الصفوف بها حوالى عشرة الأف مسجل فيها

حوالى ثلاثة آلاف واربعمائة صف حالياً  مما جعل استخدام المعادلة يستنفذ وقت طويل 

وقد طرحت الموضوع سابقاً لإستبدال المعادلة بكود وقد تكرم الأخ الفاضل أبو عيد بالحل ..

ولكن مع مرور الوقت وزيادة التسجيلات سيتم زيادة عدد الصفوف الى عشرين ألف صف

وهذا معناه بطئ يتزايد تدريجياً مع زيادة التسجيلات ..

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

السرعة المنشودة .. أرجو أن أكون قد أوضحت .. كل الشكر ..

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

الأخوة الكرام الاعزاء.. سيظل هذا الموضوع مفتوح للمشاركة ..

 عسى أن أجد يوماً من يتفضل علينا بالحل ..

كل التحية

قام بنشر

الأخ الفاضل / أحمد عبد الناصر ..

قبل كل شيئ أشكرك على استجابتك الكريمة والمشاركة القيمة ..

الحل المقدم منكم طرح سابقاً من أحد الزملاء ولكنه ليس هو بيت القصيد 

والمراد هو تنفيذ الكود لمهامه تلقائياً وبشكل يحقق السرعة و الدقة فى نتائج الميزان .

أخى .. أكرمك الله كما أكرمتنى بمشاركتك .. كل التحية ..

قام بنشر

السلام عليكم

 

مع كثرة البيانات و المعادلات لا اعلم شخصيا كود يجعل المهمة سريعة تلقائية ....

 

 

اعتقد من الممكن ان نجعل كود يعمل بعد تغير قيمة الخلية بأن يذهب فقط امام الحساب المعدل ليضع معادلاته و ينسخه و يلصقه كقيم ....

سوف تظهر مشكلة و هي تغير ايضا الحساب السابق (اي بعد ان يعدل الي الحساب الجديد) في حالة التعديل و ليس اضافة سطر جديد , اعتقد ان لهذه الحالة حل ايضا ....

لست متأكد 100% من دقة و فاعلية هذه الطريقة(لا افضلها صراحة اذن فيها مجال للخطأ) و هي هل تتناسب مع ما تريد ؟؟؟

 

 

تحياتي

---------

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

وعليكم السلام .. أخى الكريم ..

فكرة الكود التى ذكرتها جيدة بقدر ما فهمت من شرحك .. ولكن المهم قدرة هذا

الكود على تحقيـق المراد منه وهو الدقة والسرعة وهذا فقط كل مانتطلع إليه.. 

مع العلم أن أحياناً كثيرة نعود الى قيود سابقة لتعديل القيد نفسه أولتعديل القيمة

ولا نلجأ الى قيود التسوية ..

أنا لا أريد أخى الكريم أن اثقل عليك .. ولكن إن أردت أن تكمل معى حتى نصل الى

الحل المنشود فجزاك الله كل خير .. وهذا سوف يثرى ولو بقدر ما المنتدى ويستفيد

منه كثيراً من الأعضاء .

تحياتى ..

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

السلام عليكم

 

جرب هذه ......

Dim x

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 7 Or Target.Column = 9 Then
    If Target.Cells.Count = 1 Then
    y = ""
    y = Target.Value
        If x = y Then GoTo 1
'''''''''''''''''''''''''''
Application.ScreenUpdating = False
r = Application.WorksheetFunction.Match(x, Sheets("2").Range("c:c"), 0)
Sheets("2").Cells(r, 4).FormulaR1C1 = "=SUMIF(ÇáÎÒíäÉ!C7,RC[-1],ÇáÎÒíäÉ!C6)"
Sheets("2").Cells(r, 4) = Sheets("2").Cells(r, 4).Value

Sheets("2").Cells(r, 5).FormulaR1C1 = "=SUMIF(ÇáÎÒíäÉ!C9,RC[-2],ÇáÎÒíäÉ!C8)"
Sheets("2").Cells(r, 5) = Sheets("2").Cells(r, 5).Value
'+++++
r = Application.WorksheetFunction.Match(y, Sheets("2").Range("c:c"), 0)
Sheets("2").Cells(r, 4).FormulaR1C1 = "=SUMIF(ÇáÎÒíäÉ!C7,RC[-1],ÇáÎÒíäÉ!C6)"
Sheets("2").Cells(r, 4) = Sheets("2").Cells(r, 4).Value

Sheets("2").Cells(r, 5).FormulaR1C1 = "=SUMIF(ÇáÎÒíäÉ!C9,RC[-2],ÇáÎÒíäÉ!C8)"
Sheets("2").Cells(r, 5) = Sheets("2").Cells(r, 5).Value

Application.ScreenUpdating = True

'''''''''''''''''''''''''''
    End If
End If
1
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Column = 7 Or Target.Column = 9 Then
    If Target.Cells.Count = 1 Then
        x = ""
        x = Target.Value
    End If
End If

End Sub

--لست متأكد من دقة هذه الطريقة صراحة :]

 

ملحوظة: اعتقد انه من الممكن استخدام Application.Evaluate Method لتكون المعادلات  اسرع و الله اعلم

 

تحياتي

 

 

sumif+-+.rar

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

السلام عليكم ..

أقوم الأن بتجريب الكود ..

والملاحظ حتى الأن أن النتائج فى الميزان لايحدث لها تحديث قيم بتعديل كود سابق وغير

ذلك .. هناك خلل ما .. كلما وضعت قيود أو عدلتها فإن النتيجة غير صحيحة .. 

يمكنك التجريب بنفسك .. فالمؤكد أنك تستطيع الوقوف على الحالة أكثر منى ..

تحياتى

تم تعديل بواسطه samycalls

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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

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

Important Information