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

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

قام بنشر

صباح الخير للناس الغالية

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

 

وتقبلوا تحياتي

 

محرر كود المعادلات.rar

  • Like 4
قام بنشر

بارك الله فيك أخي الحبيب الزباري وجزيت خيراً على الموضوع الرائع والممتع

 

الفكرة جميلة ولكنها تحتاج لتطوير بالفعل ..

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

Sub TestRun()
    [c1].Formula = "=IFERROR(VLOOKUP(M2,$M$2:$N$7,2,0),"")"
End Sub

ستظهر رسالة خطأ بهذا الشكل

Untitled.png.426fb287c362f3d9040c8192f56

وسبب الخطأ هو أن علامات التنصيص يجب أن توضع بين علامتي تنصيص أخرى

يجب أن تكون هكذا

Sub TestRun()
    [c1].Formula = "=IFERROR(VLOOKUP(M2,$M$2:$N$7,2,0),"""")"
End Sub

*************

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

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

الدالة بعد التعديل كالتالي

Function DisplayFormula(cel As Range)
    Dim str As String
    
    str = Replace(cel.Formula, """", """""")
    DisplayFormula = "[" & cel.Address(0, 0) & "].Formula=" & """" & str & """"
End Function

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

تقبل تحياتي

 

  • Like 4
قام بنشر

سيظهر السطر الخاص بالمعادلة جاهز للعمل ويمكنك نسخه لمحرر الأكواد واستخدامه بكل سهولة  ....

  اين اضع المعادله واين السطر الذي سيظهر واضع فيه المعادله وشكراااا

قام بنشر

أخي الكريم

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

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

* يرجى عدم استخدام الاقتباسات إلا للضرورة

تقبل تحياتي

قام بنشر

أخي الكريم أحمد

التطوير لا يأتي من فراغ ..إنما الحاجة أم الاختراع ..

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

الدالة بداية جيدة لمن يريد تحويل المعادلات إلى أكواد ..

تقبل تحياتي

  • Like 1
قام بنشر

أخي الكريم ناصر سعيد ..

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

للعلم أنه ليس كود يتم تنفيذه إنما دالة معرفة تؤدي غرض معين .. الدالة المعرفة يتم استخدامها في الإكسيل كالدوال العادية التي تستخدمها

Function DisplayFormula(cel As Range)
    Dim str As String
    
    str = Replace(cel.Formula, """", """""")
    DisplayFormula = "[" & cel.Address(0, 0) & "].Formula=" & """" & str & """"
End Function

هذه هي شكل الدالة المعرفة وتوضع في موديول عادي مثلها مثل الأكواد العادية .. ويمكن استخدامها في ورقة العمل بشكل مباشر بعد ذلك

مثال : ضع القيمة 10 في الخلية A1 وضع القيمة 15 في الخلية A2 واكتب المعادلة التالية في الخلية A3 لجمع الخليتين

=SUM(A1:A2)

الآن في أي خلية وليكن الخلية E10 ضع المعادلة التالية التي سنستخدم فيها الدالة المعرفة

=DisplayFormula(A3)

ناتج المعادلة الخاصة بالدالة المعرفة سيكون كالتالي

[A3].Formula="=SUM(A1:A2)"

وهذا هو مربط الفرس أنه بهذا السطر أصبحت قادراً على أن تأخذ المعادلة بهذا الشكل وتنفذها من خلال محرر الأكواد في كود آخر .. أي أن الدالة المعرفة DisplayFormula تقوم بإظهار شكل السطر المطلوب لتنفيذ المعادلة في الأكواد ..

يمكنك نسخ هذا السطر على سبيل المثال في كود آخر بهذا الشكل (قم بنسخ الكود التالي)

Sub TestRun()
    [A3].Formula = "=SUM(A1:A2)"
End Sub

الآن قم بمسح محتويات الخلية A3 التي تحتوي على معادلة بالفعل وقم بتنفيذ الإجراء الفرعي الذي قمت بوضعه في محرر الأكواد والمسمى TestRun ..(اضغط Alt + F8) من لوحة المفاتيح وأنت في ورقة العمل لتظهر لك الأكواد .. اختر الكود المسمى TestRun ولاحظ الخلية A3 ... ستجد أن الكود يقوم بوضع المعادلة في الخلية A3 بهذا السطر ..

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

(يا ريت بقا تغير اسم الظهور للغة العربية وإلا هعتبر دا خصاااااااام ومش هرد عليك تاني :yes:)

تقبل تحياتي

  • Like 1
قام بنشر

شكرا شكرا لردك اخي الكريم ياسر

هل لو غيرت اسم الظهور الى العربيه على سبيل المثال هيتم تغيير اسم المستخدم عند دخولي المنتدى يعني اكتب اسم الدخول ناصر سعيد بالعربي

ثانيا

شرحك رائع  .. افرض اننا نريد ان نجعل هذه الطريقة تنفذ على عدة خلايا مرة واحدة يعني مثلا عمليات جمع في اماكن مختلفة من الصفحة .. ما العمل

قام بنشر

أخي الكريم سعيد ناصر

نعم اسم الظهور مرتبط باسم الدخول .. ستكتب "سعيد ناصر" في أثناء الدخول على الموقع

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

قام بنشر

جزاك الله خيراً  أ.ياسر.. فالعين لا تعلو على الحاجب

قام بنشر

أخي الحبيب أنت صاحب الفضل بعد الله عزوجل في هذا الموضوع المتميز ...

وإن شاء الله نتابع الموضوع سوياً بحيث نطور الدالة ، كلما استجد أمر ما

تقبل تحياتي

قام بنشر

لو أردت أن تطبق المعادلة لأكثر من خلية مثلا [a3:a10] فقط تضيف على الكود هذا السطر

[a3:a10].FillDown

  • Like 2

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.

×
×
  • اضف...

Important Information