samycalls قام بنشر مارس 22, 2015 قام بنشر مارس 22, 2015 السلام عليكم هذا المرفق به كود لمعادلة SUMIF هل من الممكن تغير الكود أو تعديله ليصبح أكثر سرعة فى الاستجابه نظراً لطول الشيت وكثرة التسجيلات .. sumif.rar
الشهابي قام بنشر مارس 22, 2015 قام بنشر مارس 22, 2015 أخي العزيز / 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
samycalls قام بنشر مارس 22, 2015 الكاتب قام بنشر مارس 22, 2015 الأخ الكريم الشهابى .. كل التحية .. بتطبيق الكود الذى ذكرته يحدث خلل فى الميزان فى الورقة 2 ..
samycalls قام بنشر مارس 23, 2015 الكاتب قام بنشر مارس 23, 2015 الأخوة الأعزاء .. هل أجد منكم حل لمسألتى ؟؟
samycalls قام بنشر مارس 24, 2015 الكاتب قام بنشر مارس 24, 2015 السلام عليكم .. ارجو من رواد وزوار هذا الموقع الهام ممن شاهدوا هذا الموضوع إفادتتى عنه . هل هناك حل لما طرح أم لايوجد حل .. كل الشكر
samycalls قام بنشر مارس 26, 2015 الكاتب قام بنشر مارس 26, 2015 لايأس مع الحياة ولا حياة مع اليأس .. ربما يحدث صدى هذة الكلمات دوى فيعلم أصدقائنا واساتذتنا أننا فى انتظار ردودكم التى تنير لنا الطريق وتفتح لنا آفاق للمعرفة.. فنتعلم ونمتن ونشكر ..
ياسر خليل أبو البراء قام بنشر مارس 26, 2015 قام بنشر مارس 26, 2015 أخي الفاضل .إذا لم تجد رد على موضوعك فمعنى هذا أن الطلب مبهم وغير واااااااااضح للجميع ولذلك لا يوجد ردود .. المشكلة ليست في رفع الموضوع .. حاول مرة أخرى توضح الطلب وارفق شكل النتائج المرجوة ..
samycalls قام بنشر مارس 27, 2015 الكاتب قام بنشر مارس 27, 2015 (معدل) أخى الكريم .. ياسر الملف المرفق خاص بتسجيل قيود يومية من خلالها وبمعادلة sumif نحصل على ميزان للمراجعة بالمجامبع وبالأرصدة .. المشكلة هو أن ورقة تسجيل قيود اليومية عدد الصفوف بها حوالى عشرة الأف مسجل فيها حوالى ثلاثة آلاف واربعمائة صف حالياً مما جعل استخدام المعادلة يستنفذ وقت طويل وقد طرحت الموضوع سابقاً لإستبدال المعادلة بكود وقد تكرم الأخ الفاضل أبو عيد بالحل .. ولكن مع مرور الوقت وزيادة التسجيلات سيتم زيادة عدد الصفوف الى عشرين ألف صف وهذا معناه بطئ يتزايد تدريجياً مع زيادة التسجيلات .. فكل ما أرجوة هو تعديل الكود أو استبدالة بكود آخر يحقق النتيجة الصحيحة للميزان ويحقق السرعة المنشودة .. أرجو أن أكون قد أوضحت .. كل الشكر .. تم تعديل مارس 27, 2015 بواسطه samycalls
samycalls قام بنشر مارس 30, 2015 الكاتب قام بنشر مارس 30, 2015 لا أجد غير كلمات الشكر على أية حال .. جزاكم الله خيراً
samycalls قام بنشر أبريل 2, 2015 الكاتب قام بنشر أبريل 2, 2015 الأخوة الكرام الاعزاء.. سيظل هذا الموضوع مفتوح للمشاركة .. عسى أن أجد يوماً من يتفضل علينا بالحل .. كل التحية
احمد عبد الناصر قام بنشر أبريل 2, 2015 قام بنشر أبريل 2, 2015 السلام عليكم من الممكن وضع زر بحيث يعمل الكود عند الطلب فقط في شيت الميزان , هل هذا يفي بالغرض ؟ جرب المرفق تحياتي ----- sumif+.rar
samycalls قام بنشر أبريل 3, 2015 الكاتب قام بنشر أبريل 3, 2015 الأخ الفاضل / أحمد عبد الناصر .. قبل كل شيئ أشكرك على استجابتك الكريمة والمشاركة القيمة .. الحل المقدم منكم طرح سابقاً من أحد الزملاء ولكنه ليس هو بيت القصيد والمراد هو تنفيذ الكود لمهامه تلقائياً وبشكل يحقق السرعة و الدقة فى نتائج الميزان . أخى .. أكرمك الله كما أكرمتنى بمشاركتك .. كل التحية ..
احمد عبد الناصر قام بنشر أبريل 3, 2015 قام بنشر أبريل 3, 2015 السلام عليكم مع كثرة البيانات و المعادلات لا اعلم شخصيا كود يجعل المهمة سريعة تلقائية .... اعتقد من الممكن ان نجعل كود يعمل بعد تغير قيمة الخلية بأن يذهب فقط امام الحساب المعدل ليضع معادلاته و ينسخه و يلصقه كقيم .... سوف تظهر مشكلة و هي تغير ايضا الحساب السابق (اي بعد ان يعدل الي الحساب الجديد) في حالة التعديل و ليس اضافة سطر جديد , اعتقد ان لهذه الحالة حل ايضا .... لست متأكد 100% من دقة و فاعلية هذه الطريقة(لا افضلها صراحة اذن فيها مجال للخطأ) و هي هل تتناسب مع ما تريد ؟؟؟ تحياتي ---------
samycalls قام بنشر أبريل 3, 2015 الكاتب قام بنشر أبريل 3, 2015 (معدل) وعليكم السلام .. أخى الكريم .. فكرة الكود التى ذكرتها جيدة بقدر ما فهمت من شرحك .. ولكن المهم قدرة هذا الكود على تحقيـق المراد منه وهو الدقة والسرعة وهذا فقط كل مانتطلع إليه.. مع العلم أن أحياناً كثيرة نعود الى قيود سابقة لتعديل القيد نفسه أولتعديل القيمة ولا نلجأ الى قيود التسوية .. أنا لا أريد أخى الكريم أن اثقل عليك .. ولكن إن أردت أن تكمل معى حتى نصل الى الحل المنشود فجزاك الله كل خير .. وهذا سوف يثرى ولو بقدر ما المنتدى ويستفيد منه كثيراً من الأعضاء . تحياتى .. تم تعديل أبريل 3, 2015 بواسطه samycalls
احمد عبد الناصر قام بنشر أبريل 6, 2015 قام بنشر أبريل 6, 2015 السلام عليكم معذرة علي التأخير انا بطيء قليلا لكن لم انس الملف :] يوم او يومان بأذن الله و ساقوم بتجربة الكود تحياتي
samycalls قام بنشر أبريل 6, 2015 الكاتب قام بنشر أبريل 6, 2015 وعليكم سلام الله .. أعانك الله ووفقك الى ما تحب وترضى ..
احمد عبد الناصر قام بنشر أبريل 7, 2015 قام بنشر أبريل 7, 2015 السلام عليكم جرب هذه ...... 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 قام بنشر أبريل 8, 2015 الكاتب قام بنشر أبريل 8, 2015 (معدل) السلام عليكم .. أقوم الأن بتجريب الكود .. والملاحظ حتى الأن أن النتائج فى الميزان لايحدث لها تحديث قيم بتعديل كود سابق وغير ذلك .. هناك خلل ما .. كلما وضعت قيود أو عدلتها فإن النتيجة غير صحيحة .. يمكنك التجريب بنفسك .. فالمؤكد أنك تستطيع الوقوف على الحالة أكثر منى .. تحياتى تم تعديل أبريل 8, 2015 بواسطه samycalls
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.