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

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

قام بنشر

السلام عليكم ورحمة اله وبركاته
الأخوة الأفاضل السلام عليكم ورحمة الله وبركاته
اريد تحويل هذه المعادلة الى كود هل هذا ممكن مع عدم اظهارها في الخليه وتكون النتيجة في خلية c   وجزاكم الله خير

=A1(A1-B1)

مع جزيل الشكر ، وجزاكم الله خير الجزاء

قام بنشر

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

أهلا بك في المنتدى

يرجى تغيير اسم الظهور للغة الزهور اللغة العربية

 

إليك الكود التالي عله يفي بالغرض

Sub ConvertFormulaToVBA()
'لتظهر النتائج في العمود الثالث [=A1(A1-B1)] يقوم الكود بتحويل المعادلة
'----------------------------------------------------------------------
    Dim I As Long
    Application.ScreenUpdating = False
'حلقة تكرارية من الصف الأول لآخر صف به بيانات في العمود الأول
        For I = 1 To Cells(Rows.Count, 1).End(xlUp).Row
'الخلية في العمود الثالث تساوي الخلية في العمود الأول مضروبة في الفرق بين الخليتين
            Cells(I, 3) = Cells(I, 1) * (Cells(I, 1) - Cells(I, 2))
'الانتقال للخلية التالية
        Next I
    Application.ScreenUpdating = True
End Sub

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

تقبل تحياتي

Convert Formula To VBA.rar

  • Like 1
قام بنشر

شكرا اخي ياسر على تجاوبك

لقد تم تعديل الاسم الى اللغة العربية 

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

b1-a1)/a1)

وهي حاصل طرح b1-a1  قسمة a1

 

 

مع الشكر لجهودك

قام بنشر

الاخ ياسر

لقد قمت بالتعديل على المعادلة كالتالي

Sub ConvertFormulaToVBA()

    Dim I As Long
    Application.ScreenUpdating = False
        For I = 1 To Cells(Rows.Count, 1).End(xlUp).Row
           
              Cells(I, 3) = (Cells(I, 2) - Cells(I, 1)) / Cells(I, 1)
        Next I
    Application.ScreenUpdating = True
End Sub
هل هذا التعديل صحيح حسب فهم المعادلة اعلاه
  • Like 1
قام بنشر

جرب الكود بهذا الشكل

Sub ConvertFormulaToVBA()
'لتظهر النتائج في العمود الثالث [=(B1-A1)/A1] يقوم الكود بتحويل المعادلة
'----------------------------------------------------------------------
    Dim I As Long
    Application.ScreenUpdating = False
'حلقة تكرارية من الصف الأول لآخر صف به بيانات في العمود الأول
        For I = 1 To Cells(Rows.Count, 1).End(xlUp).Row
'إذا كانت الخلية في العمود الأول تساوي صفر لا يتم تنفيذ السطر التالي ويتم الانتقال للسطر الذي بدايته 1
            If Cells(I, 1) = 0 Then GoTo 1
'الخلية في العمود الثالث تساوي الفرق بين الخليتين ثم القسمة على الخلية في العمود الأول
            Cells(I, 3) = (Cells(I, 2) - Cells(I, 1)) / Cells(I, 1)
'الانتقال للخلية التالية
1        Next I
    Application.ScreenUpdating = True
End Sub
قام بنشر (معدل)

شكرا اخي ياسر على جهودك 

هل بالامكان اذا كانت القيمة تساوي صفر ان يتم القسمة على 1

 

اسف غلبتك معي جدا 

تم تعديل بواسطه احمد علي 1981
  • تمت الإجابة
قام بنشر

ولا يهمك يا أخ أحمد

جرب

Sub ConvertFormulaToVBA()
'لتظهر النتائج في العمود الثالث [=(B1-A1)/A1] يقوم الكود بتحويل المعادلة
'----------------------------------------------------------------------
    Dim I As Long
    Application.ScreenUpdating = False
'حلقة تكرارية من الصف الأول لآخر صف به بيانات في العمود الأول
        For I = 1 To Cells(Rows.Count, 1).End(xlUp).Row
'إذا كانت الخلية في العمود الأول تساوي صفر لا يتم تنفيذ السطر التالي ويتم الانتقال للسطر الذي بدايته 1
            If Cells(I, 1) = 0 Then Cells(I, 1) = 1
'الخلية في العمود الثالث تساوي الفرق بين الخليتين ثم القسمة على الخلية في العمود الأول
            Cells(I, 3) = (Cells(I, 2) - Cells(I, 1)) / Cells(I, 1)
'الانتقال للخلية التالية
        Next I
    Application.ScreenUpdating = True
End Sub

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

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

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

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

Important Information