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

كود لتحويل المعادلات الى قيم في اي ورقة


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

السلام عليكم

كود لتحويل المعادلات الى اكواد في اي ورقة

هذا شرح مبسط للموضوع

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

فرضا

تبدا من الصف 5 وتنتهي بالصف 1000

متجاورة او غير متجاورة على الصف

تنسخ هذه المعادلات وتضعها على صف في بداية الورقة مثلا 2

وتقوم باخفاء هذا الصف

عمل الكود يتلخص في الاتي:

يقوم بتشغيل هذه المعادلات في الصفوف التي عينتها في الكود

ويبقي قيمتها فقط .

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

ويشغلها الكود دفعة واحده لكل الاوراق التي عينتها في الكود

مثال

kh_cFormula Range("ورقة1!$D$2:$G$2"), 5, 1000
Sub kh_cFormula(MyRng As Range, iRow As Integer, Lastrow As Long)
' MyRng : الصف المخفي الذي يحوي المعادلات ملحوق باسم الورقة ' iRow : اول صف للبيانات ' Lastrow : آخر صف للبيانات ====================================================================== الكود :

Sub kh_Copy_Formula()

On Error GoTo kh_Err


kh_Application False


'=============================================

kh_cFormula Range("ورقة1!$D$3:$G$3"), 9, 18

kh_cFormula Range("ورقة2!$D$4:$G$4"), 10, 44

kh_cFormula Range("ورقة3!$D$5:$G$5"), 11, 20

'=============================================


kh_Err:

kh_Application True


If Err Then

MsgBox "Err.Number : " & Err.Number

Err.Clear

Else: MsgBox " تم نسخ المعادلات بنجاح", vbMsgBoxRight, "الحمدلله"

End If

End Sub

وهذا كود التحويل


' MyRng : الصف المخفي الذي يحوي المعادلات ملحوق باسم الورقة

' iRow : اول صف للبيانات

' Lastrow : آخر صف للبيانات


Sub kh_cFormula(MyRng As Range, iRow As Integer, Lastrow As Long)

Dim Col As Range

Dim R As Long

'========================

For Each Col In MyRng.Cells

If Col.HasFormula Then

For R = iRow To Lastrow

With MyRng.Worksheet

.Cells(R, Col.Column).FormulaR1C1 = Col.FormulaR1C1

.Cells(R, Col.Column).Value = .Cells(R, Col.Column)

End With

Next R

End If

Next

'========================

Set Col = Nothing

End Sub

المرفق 2003-2007

كود لتحويل المعادلات الى اكواد في اي ورقة.rar

رابط هذا التعليق
شارك

  • 2 weeks later...
  • 2 months later...

أخي الكريم عبد الله

جزاك الله خيرا

عمل والله أكثر من رائع

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

جعلة الله في موازين حسناتك

ولكن هل يمكن عمل الكود بشكل تلقائي بدون استخدام أزرار ؟؟

تم تعديل بواسطه دغيدى
رابط هذا التعليق
شارك

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

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

احترامى

رابط هذا التعليق
شارك

  • 2 weeks later...

أخي الحبيب

ومعلمي الكبير

لم أفهم الملف جيداً .. هل يقوم بنسخ المعادلات فقط أم يحولها إلى أكواد وكيف ذلك؟؟؟

أرجو منك شرح مبسط للملف إذا أمكنك ذلك

تم تعديل بواسطه YasserKhalil
رابط هذا التعليق
شارك

السلام عليكم

هذا شرح مبسط للموضوع

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

فرضا

تبدا من الصف 5 وتنتهي بالصف 1000

متجاورة او غير متجاورة على الصف

تنسخ هذه المعادلات وتضعها على صف في بداية الورقة مثلا 2

وتقوم باخفاء هذا الصف

عمل الكود يتلخص في الاتي:

يقوم بتشغيل هذه المعادلات في الصفوف التي عينتها في الكود

ويبقي قيمتها فقط .

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

ويشغلها الكود دفعة واحده لكل الاوراق التي عينتها في الكود

مثال

kh_cFormula Range("ورقة1!$D$2:$G$2"), 5, 1000
Sub kh_cFormula(MyRng As Range, iRow As Integer, Lastrow As Long)

' MyRng : الصف المخفي الذي يحوي المعادلات ملحوق باسم الورقة

' iRow : اول صف للبيانات

' Lastrow : آخر صف للبيانات

ارجوا ان يكون الشرح واضح

موجود في المرفق في المشاركة 1 تطبيق الكود

في امان الله

  • Like 1
رابط هذا التعليق
شارك

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

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

استاذي الفاضل منذ طرح الكود وانا احاول ولكن بعد استفسارات الاساتذة والاخوة الاعزاء الحمد لله تم تعديله ببساطة على ملفاتي ويعمل بشكل ممتاز لان ملفاتي فيها معادلات كثيرة وفيه بطء عند العمل

جزاك الله خيرا وغفر لك واحسن اليك

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

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

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

استاذنا القدير عبدالله باقشير

فكرة رائعة

وتطبيق ذكي جدا

جزاك الله كل خير وجعله في ميزان حسناتك

رابط هذا التعليق
شارك

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

ومربوط بزر يشغل الكود فى هذه الأوراق (كل ورقة فيها نسخة من الزر)

عند الرغبة فى تشغيل الكود نضغط على الزر فى ورقة ما من الأوراق المذكورة فى الكود

فى هذه الحالة الكود يعمل فى هذه الورقة فقط أم فى كل الأوراق ؟؟

نقطة أخرى أحب أن الفت إليها الإنتباه

حيث عند التجربة بملف يخصنى وبه أوراق عديدة كنت أضطر لضغط الزر مرتين فى كل ورقة لكى ينسخ كل المعادلات فالضغطة الأولى كانت تشغل معظم المعادلات والضغطة الثانية كانت تشغل آخر معادلة حيث تأخذ نتائجها من المعادلات التى تم تشغيلها بالضغطة الأولى

رابط هذا التعليق
شارك

السلام عليكم

فى هذه الحالة الكود يعمل فى هذه الورقة فقط أم فى كل الأوراق ؟؟

في كل الاوراق

حيث عند التجربة بملف يخصنى وبه أوراق عديدة كنت أضطر لضغط الزر مرتين فى كل ورقة لكى ينسخ كل المعادلات فالضغطة الأولى كانت تشغل معظم المعادلات والضغطة الثانية كانت تشغل آخر معادلة حيث تأخذ نتائجها من المعادلات التى تم تشغيلها بالضغطة الأولى

ليس بسبب الكود

السبب المعادلات يجب ان تكون مرتبة النتائج

في امان الله

رابط هذا التعليق
شارك

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

الاستاذ والعلامة الكبير عبد الله باقشير حفظك الله ورعاك واحسن اليك في الدنيا والاخرة كما احسنت وتحسن الينا في جميع اعمالك وكانت خالصة لوجه الله سبحانه وتعالى دون مجاملة او رياء فاعمالك واضحة ومتاحة للجميع

استاذنا العزيز تحويل المعادلات تمام التمام ورائع لكن بعد تحويل المعادلات واعطاء نتيجة صحيحة لاكثر من تجربة قمت بها لكن تظهر هذه الرسالة ( Err.Number:1004) مع العلم النتائج صحيحة

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

رابط هذا التعليق
شارك

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

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

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

ودمتم في رعاية الله وحفظه

رابط هذا التعليق
شارك

  • 1 month later...
  • 9 months later...

السلام عليكم

 

اخي الحبيب عباس السماوي ...........حفظكم الله

 

لذلك والكلام الاخير لاستاذنا والعالم الكبير ابو علي حفظه الله اعتقد لايستطيع الكود بوضعه الحالي تحويل معادلات الصفيف وهذا اعتقاد كما اسلفت ويبفى الكلام  الفصل للعالم العلامة دام عزه

 

 

 

غير هذا الكود وسيتعامل مع معادلات الصفيف

Sub kh_cFormula(MyRng As Range, iRow As Integer, Lastrow As Long)
Dim Col As Range
Dim R As Long
'========================
For Each Col In MyRng.Cells
    If Col.HasFormula Then
        For R = iRow To Lastrow
            With MyRng.Worksheet
                If Col.HasArray Then
                    .Cells(R, Col.Column).FormulaArray = Col.FormulaR1C1
                Else
                    .Cells(R, Col.Column).Formula = Col.FormulaR1C1
                End If
                .Cells(R, Col.Column).Value = .Cells(R, Col.Column)
            End With
        Next R
    End If
Next
'========================
Set Col = Nothing
End Sub

تحياتي

رابط هذا التعليق
شارك

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

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

وانعم عليك بالصحة والعافية ورزقك خير الدنيا وخير الاخرة

اعمالك فخر لنا وللوطن العربي الكبير فنحن نحترم علماؤنا

وفقك الله ورعاك وسدد خطاك لما فيه خير لك في الدنيا والاخرة

اضفت الكود الرائع لتحويل معادلات الصفيف وهو كان طلبا للاخ العزيز ابو الاء جزاه الله خيرا

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

اثابك الله وجعلها في موازين حسناتك 

دمتم برعاية الله وحفظه

 

كود تحويل معادلات الصفيف .rar

 

 

  • Like 3
رابط هذا التعليق
شارك

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