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

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

قام بنشر

بسم الله الرحمن الرحيم

 

أخوتي الأفاضل لدي بعض الإستفسارات لأصحاب الخبرة :

 

- ماهي أفضل طريقة لتسريع عمل مصنف اكسل يوجد به معادلات كبيرة و أكثر من عشرين ألاف صف مع استخدام دوال مثل sum ifs و countif و vlookup وغيرها من المعادلات المشابهة

 

- هل عندما نقوم بتحويل المعادلات العادية إلى أكواد VBA يختلف أداء عمل المصنف إلى الأفضل

 

- هل يمكن الاعتماد على اكسل كواجهة للقيام بالحسابات و عرض النتائج لقاعدة بيانات موجودة في ملف اكسس ( هل يمكن الربط بينهما ) . 

 

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

 

 

 

قام بنشر

السلام عليكم

الاخ / عبد الرحمن

انا لا اعتقد مهما فعلت مع اكسيل ان يكون سريع خاصه النطاق الذى لديك كبير ومن ما جعل الموضوع اصعب معادله sumif من ما يؤدى الى كثير من البطىء

ولكن جرب تحوبل المدى الى xlsb. الاصغر حجما والاسرع اداءا وعلى الاقل هى محاوله والسلام

 

رأى اخر اعتقد انه البديل الامثل هو استبدال عمل المعادلات بأكواد VBA ليكون الملف اسرع آلاف المرات ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ من المعادلات

 

وانتظر اراء خبراء الاعضاء

 

هذا ما لدى والله اعلم 

  • Like 1
قام بنشر

السلام عليكم

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

والحلول التي اقترحها هي :

 1 تحويل بعض الصيغ إلى أكواد فيجوال

 

 

 2 استخدام الدالة indirect  فهي ( قد ) تختصر المعادلات

انظر الرابط     http://www.officena.net/ib/index.php?showtopic=34740&hl=

 

 

 3 تحويل ملف الإكسل إلى الإمتداد xlsb يعنى النظام الثنائي

  • Like 2
قام بنشر

السلام عليكم

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

والحلول التي اقترحها هي :

 1 تحويل بعض الصيغ إلى أكواد فيجوال

 

 

 2 استخدام الدالة indirect  فهي ( قد ) تختصر المعادلات

انظر الرابط     http://www.officena.net/ib/index.php?showtopic=34740&hl=

 

 

 3 تحويل ملف الإكسل إلى الإمتداد xlsb يعنى النظام الثنائي

 

أخي أبو عيد ما هي أفضل طريقة لتحويل المعادلات إلى أكواد ؟

قام بنشر

السلام عليكم

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

جزء من الملف يعنى ارفق الملف وبه ورقة أو ورقتين أو ثلاث قثط واحذف بقية الاوراق حتى يقل حجمه وذلك للتطبيق عليه فقط

تحياتي

قام بنشر

أخي ابو عيد شكرا على تفاعلك 

 

سوف احاول التعديل بعض الشيء على الملف و ارساله إليك

 

أرجو أن تتفقد هذا الكود الذي وضعه أحد الاخوه في المنتدى 

 

هل يمكن استخدامه مع جميع المعادلات :

Option Explicit


Sub Kh_Formula_To_Value()
Dim MyCalcu As XlCalculation
With Application
    MyCalcu = .Calculation
    .Calculation = xlCalculationManual
    .ScreenUpdating = False
End With
'=====================================
'//////////////////////////////////////
'=====================================
'  هنا تضع النطاق والمعادلة التي تريد تحويلها قيم
'      Formula_To_Value باستخدام
'=====================================
' T هنا المعادلة اللي في العمود
Formula_To_Value Range("T5:T30"), "=RC[-2]*RC[-1]"

' x هنا المعادلة اللي في العمود
'  مثل عمل كود الاخ كيماس

Formula_To_Value Range("X5:X30"), "=IF(COUNTIF(RC16:R30C16,RC16)=1,SUMPRODUCT((R5C16:R1500C16=RC16)*(R5C20:R1500C20)),"""")"

' Y هنا المعادلة اللي في العمود
Formula_To_Value Range("Y5:Y30"), "=SUMPRODUCT((R5C16:R1500C16=RC16)*(R5C20:R1500C20))"
'=====================================
'//////////////////////////////////////
'=====================================
With Application
    .ScreenUpdating = True
    .Calculation = MyCalcu
End With

End Sub

Sub Formula_To_Value(MyRng As Range, MyFormula As Variant)
With MyRng
    .ClearContents
    .Formula = MyFormula
    .Cells = .Value
End With
End Sub

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

بسم الله الرحمن الرحيم

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

أكثر شيء يجعل الإكسيل بطيء هو أن تعمد الصيغة في خلية على خلية هي الأخرى بها صيغة وليست قيمة

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

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

وعلى العموم جرب وأخبرني بالنتيجة

والله الموفق إلى كل خير

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

تفضل

محول صيغ معادلات الورقة الحالية إلى اكواد 

هذه النسخة قديمة للخبير الأستاذ عمر الحسيني

بإمكانك مراسلته للحصول على أحدث نسخة إن أمكن

 

شكرا أخي أبو عيد على هذا المجهود الطيب , حاولت تشغيل الملف لم يعمل

قام بنشر

 

بسم الله الرحمن الرحيم

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

أكثر شيء يجعل الإكسيل بطيء هو أن تعمد الصيغة في خلية على خلية هي الأخرى بها صيغة وليست قيمة

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

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

وعلى العموم جرب وأخبرني بالنتيجة

والله الموفق إلى كل خير

 

شكرا لك أخي هشام على هذه الإفادة الرائعة جعلها الله في ميزان حسناتك

قام بنشر

     السلام عليكم

بعض المبرمجين عندما يعملون البرامج بالإكسل ينشئون صفحات خالية تحوي معادلات لا حاجة لنا بها 

مثال : أنا مدرس أنشأت برنامج لإدارة درجات الطلاب خلال العام الدراسي  والبرنامج الذي عملته يحوى 9 صفحات (من المستوى الأول إعدادي إلى المستوى التاسع)

يختلف عدد الطلاب من  مستوى لآخر فإذا كان عدد الطلاب في المستوى الأول إعدادى (مثلا) 150 طالبا فيجب أن أضع المعادلات لهذا العدد بالضبط ولا أزيد

لكن الطريقة المعتادة أن المبرمج يملأ الصفحة كلها من السطر الأول إلى السطر رقم 300 مثلا كله بالمعادلات مع أن كثير من الصفوف خالية ليس بها طلاب

الصفوف خالية ليس بها طلاب لكن بها معادلات تزيد من حجم الإكسل

الطريقة هي أن نضع المعادلات بحسب الحاجة ولا نزيد فإذا ادخلنا اسم 70 طالب فإننا نحتاج لحساب البيانات لهؤلاء السبعين فقط

لاحظ في المرفق أن اسم الزر يتغير عند الرغبة في تحديث البيانات

تفضلوا المرفق  

تحويل المعادلات إلى أكواد.rar

  • Like 4
قام بنشر

الأخ عبدالرحمن

لتشغيل الملف اتبع الخطوات الآتية :

1 افتح ملفك الذي تريد تحويل المعادلات فيه

2 الآن اذهب إلى ملف التحويل CONVERT وافتحه , ستظهر لك رسالة داخل ملفك . اضغط X (يعني أغلق الرسالة)

3 ستلاحظ أعلى الصفحة في ملفك ظهور قائمة جديدة في شريط القوائم في الأعلى اسمه ( الوظائف الإضافية )

4 وبالضغط على (الوظائف الإضافية) تظهر عدة خيارات من ضمنها تحويل المعادلاب إلى أكواد

 

ملاحظة قد لا يعمل الملف بشكل سليم لأنه قديم

  • Like 1
  • 1 month later...

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