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

تحويل المعادلات الى UDF Function


إذهب إلى أفضل إجابة Solved by أ / محمد صالح,

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

السلام عليكم ورحمة الله وبركاته **** وكل عام أنتم جميعا بخير

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

هناك معادلتين ، واحدة في الخلية C3 والأخرى في الخلية K3

بالنسبة للمعادلة الأولى ، سيتم تقسيم ال 20000 جنيها على 36 شهرًا بدءًا من الشهر التالي للتاريخ المدون فى الخلية B3 على النحو التالي: -

القسط الأول سيكون 750 جنيها  .. والباقي سيكون 550 جنيهاحتى نهاية الأقساط

أما بالنسبة للمعادلة الثانية ، فسيتم تقسيم ال 20000 جنيها على 10 أشهر بدءًا من الشهر التالي للتاريخ المدون فى الخلية J3 حتى نهاية الأقساط

للإختبار يُرجى تغير تاريخ الجهاز الى 2020/7/1 ثم تنشبط التاريخ بالضغط على F9 لرؤية ما أقصده من خلال هذا المرفق

تقبلوا وافر تقديرى وإحترامى وجزاكم الله خيرا وبارك فيكم جميعا

أقساط.xlsx

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

  • أفضل إجابة

إن شاء الله يكون هذا هو المطلوب

Function kest(total As Double, start As Date) As Double
If Date >= DateAdd("m", 1, start) And Date <= DateAdd("m", 37, start) Then
If Month(Date) - Month(start) = 1 Then
kest = 550 * (total * 96.25 / 100 / 550 - Int(total * 96.25 / 100 / 550)) + total * 3.75 / 100
Else
kest = (total - 550 * (total * 96.25 / 100 / 550 - Int(total * 96.25 / 100 / 550)) - total * 3.75 / 100) / 35
End If
Else
kest = 0
End If
End Function
Function kest2(total As Double, start As Date) As Double
If Date >= DateAdd("m", 1, start) And Date <= DateAdd("m", 11, start) Then
kest2 = total / 10
Else
kest2 = 0
End If
End Function

الدالة kest بديل المعادلة في C3

الدالة kest2 بديل المعادلة في K3

الباراميتر الأول هو المبلغ والثاني هو تاريخ البداية

ولا تنس تحويل الملف لصيغة تقبل الأكواد xlsm , xlsb

وفقنا الله جميعا لكل ما يحبه ويرضاه

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

أخى وحبيبى أبو صالح

والله زمااااااااان يا أبو صالح ***** أحلى صباح على عيونك وعلى عيون أهلنا فى البحيرة

ههههههه ههههههه بجد بجد بشكرك من قلبى لطيب الإستجابة

ولى لقاء بحضرتك بعد عودتى من العمل وبإذن الله تعالى

إنى على ثقة بالله أولا ثم بكم أن الأمور ستكون على مايرام

الى أن نلتقى أستودعكم الله وجزاكم الله خيرا

 

تم تعديل بواسطه سعيد بيرم
خطأ إملائى
  • Like 2
رابط هذا التعليق
شارك

شكرا لكلماتك الطيبة

ولا يخفى عليك إمكانية دمج الدالتين في دالة واحدة مع تمرير باراميتر ثالث يحدد النوع

صفر أو يترك فارغا للحالة الأولى

1 أو أي رقم غير صفر للحالة الثانية

Function kest(total As Double, start As Date, Optional ftype As Boolean = 0) As Double
If ftype = 0 Then
If Date >= DateAdd("m", 1, start) And Date <= DateAdd("m", 37, start) Then
If Month(Date) - Month(start) = 1 Then
kest = 550 * (total * 96.25 / 100 / 550 - Int(total * 96.25 / 100 / 550)) + total * 3.75 / 100
Else
kest = (total - 550 * (total * 96.25 / 100 / 550 - Int(total * 96.25 / 100 / 550)) - total * 3.75 / 100) / 35
End If
Else
kest = 0
End If
Else
If Date >= DateAdd("m", 1, start) And Date <= DateAdd("m", 11, start) Then
kest = total / 10
Else
kest = 0
End If
End If
End Function

وفقنا الله جميعا لكل خير

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

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

أخى وأستاذى الفاضل / محمد صالح

بسم الله ما شاء الله *** تسلم من كل شر

كلا الدالتين تعملان بشكل ممتاز من حيث النتائج

برجاء فتح الملف التالى لمعرفة ما أعنيه ونحن اليوم فى 2020/6/24 

ثم إغلق الملف ثم قم فضلا بتغيير تاريخ الجهاز الى 2020/7/1 ثم إفتح الملف

هنا لكى تُظهر النتائج لا بد من الضغط دبل كلك على الخلايا المراد إظهار النتائج بها

فهل من سبيل لضبط هذه النقطة لكى يتم إظهار النتائج بشكل تلقائى دون الضغط دبل كلك

للتوضيح ***  فرضا لو حضرتك حصلت على مبلغ وقدره 20000 ج فى 2020/6/1 ونريد تقسميها على 10 شهور

الخصم هنا سيبدأ من الشهر التالى لحصولك على هذا المبلغ فى 2020/7/1 وينتهى فى 2020/4/1

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

وطبعا الفراغ هنا أفضل من الأصفار من أجل المظهر العام عند طباعة المستند

برجاء الإفادة *** نُقدر وقتكم الثمين فى ترميز هاتين الدالتين *** تقبل وافر تقديرى واحترامى **** وجزاكم الله خيرا

الأستاذ محمد صالح.xlsb.xlsm

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

شكرا لكلماتك الطيبة

بالنسبة لعدم ظهور النتائج فحلها بسيط جدا

ضع في بداية الدالة

Application.Volatile

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

لذلك يمكنك تغيير خيارات العرض للشيت الحالي بعدم إظهار الصفر

file --> options --> advanced --> display options for this worksheet --> show a zero in cells that have zero value

بالتوفيق أخي الكريم

ولا تنساني من صالح دعائك

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

أخى وأستاذى الفاضل / أبو صالح

أصلح الله حالك وأصلح حالنا جميعا

تقبل الله منا ومنكم صالح الأعمال ورزقنى وإياكم من حيث لا نحتسب 

أرجو عدم الإنزعاج حال طلب تحويل معادلة أخرى ولكن ليس بعد

هظبطها حسب جدول الامتحانات هههههههه ههههههه

تقبل وافر تقديرى واحترامى وجزاكم الله خيرا

 

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

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