اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

تحويل معادلة الى كود vba


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

السلام عليكم

كيف يمكن تحويل المعادلة التالية الى كود vba

وهى ذات شرائح متعددة  وللأمانة العلمية فهى منقولة من مشاركات الاعضاء هنا

الشريحة الاولى أقل من أو يساوى ٥٠ لاتعطى شيئا

الشريحة الثانية أكبر من ٥٠ و أقل من ٢٥٠  الناتج × 6 / 1000

الشريحة الثالثة أكبر من ٢٥٠  و أقل من 500  الناتج × 6.5 / 1000

الشريحة الرابعه أكبر من 500  و أقل من ١٠٠٠ الناتج ×  7 /1000

الشريحة الخامسة أكبر من ١٠٠٠ و أقل من ٥٠٠٠  الناتج × 7.50 / 1000

الشريحة السادسة أكبر من ١٠٠٠ و أقل من 10000 الناتج ×  8 / 1000

الشريحة السابعة أكبر من ١٠٠٠٠ الناتج  ×  3 / 1000 الى ما لا نهاية

شكرا جزيلا للمساعدة

=IF(D5<=50;"";CEILING(IF(AND(D5>50;D5<=250);(D5-50)*0.006;IF(AND(D5>250;D5<=500);(D5-250)*65/10000+1.2;IF(AND(D5>500;D5<=1000);(D5-500)*7/1000+2.83;IF(AND(D5>1000;D5<=5000);(D5-1000)*75/10000+6.33;IF(AND(D5>5000;D5<=10000);(D5-5000)*8/1000+36.33;IF(D5>10000;(D5-10000)*3/1000+76.33))))));0.05))

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

يمكن استخدام الجملة Select Case .. سأرفق لك ملف حاول الاستفادة منه وتطبيق الشروط

ومرفق صورة جزء من حلقات افتح الباب لشرح استخدامها

001.png

Select Case Tutorial ListenData.rar

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

السلام عليكم

بعد إذن السادة الزملاء الافاضل

اخى ناصر تفضل ما طلبت " بموديول عادى "

Public Function biram(X)
N = Int(X)
If X > 50 Then result = (X - 50) * 0.006
If X > 250 Then result = 1.2 + (X - 250) * 0.0065
If X > 500 Then result = 2.825 + (X - 500) * 0.007
If X > 1000 Then result = 6.325 + (X - 1000) * 0.0075
If X > 5000 Then result = 36.325 + (X - 5000) * 0.008
If X > 10000 Then result = 76.325 + (X - 10000) * 0.003
biram = result
End Function

وضع هذه المعادلة بالخلية C1  ثم إسحب لاسفل 

على اعتبار ان القيمة المعنية بحساب الدمغه العادية بالخلية A1

ثم قارن بين الكود المشار اليه وبين المعادلة المشار اليها

حيث تم تصويب المعادلة  بمعرفتى وفقا لنص المادة رقم 79 من قانون 111 لسنة 1981

ستجد أن جميع العمليات الحسابية مطابقة 

=ROUND(biram(A1);1)

دائما فى خدمتكم ***** وجزاكم الله خيرا

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

الله ينور يا غالي منور المنتدى هنا وهناك .. (بس بلاش ترجمة جوجل اللي مش فاهم منها حاجة دي ...خليك سيمبل Simple)

شابفك بقيت منتشر عيني عليك باردة

ربنا يبارك فيك ويجازيك كل خير

تقبل تحياتي

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

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

Public Function Biram(X)
    Dim N As Variant, Result As Variant

    If IsEmpty(X) Then Biram = "": Exit Function
    N = Int(X)
    
    If X > 50 Then Result = (X - 50) * 0.006
    If X > 250 Then Result = 1.2 + (X - 250) * 0.0065
    If X > 500 Then Result = 2.825 + (X - 500) * 0.007
    If X > 1000 Then Result = 6.325 + (X - 1000) * 0.0075
    If X > 5000 Then Result = 36.325 + (X - 5000) * 0.008
    If X > 10000 Then Result = 76.325 + (X - 10000) * 0.003
    
    If IsNumeric(Result) Then Biram = Round(Result, 2)
End Function

تقبل تحياتي

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

الله يبارك فى عمرك وفى عمر البراء ياأبو البراء

والله ليك وحشة وكل عام انتم بخير بمناسبة حلول عيد الاضحى المبارك

أهو تغيير وكلنا فى الهوا سوا  

وان كان الــ Simple  فعمنا جوجل ميعرفشى أن ثقافتى وجعانى قصدى ألمانى

ههههههههههههههههه أهو تخبيط بس جايب نتيجة ونتيجة كويسة

على الاقل مجتشى من احبابنا وفى الاخير هى تجربة ناجحة حتى الان

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

 

ياحبيى والله العظيم سبقتنى

دائما سباق فى الخير وللخير

ولاداعى لرفع ملف

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

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

وجزيت خيراً بمثل ما دعوت لنا أبا عبد الرحمن ..

ولا أناديك بالاسم التاني أو الأولاني اللي قبل التاني (شكلك هاوي وأنا بتاع قهاوي) :wink2:

ربنا يبارك فيك ويزيدك والحمد لله أنك تأتي بنتائج جيدة هذا يسعدني بالتأكيد

وكل عام وأنت بخير وكل أعضاء أوفيسنا الكرام

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

حبيبى ابو البراء

لا أنا هاوى ولا أنت بتاع قهاوى

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

أما عن إبنتى المهندسة  salmasaied سلمى سعيد  فهى سلمى سعيد هناك

وليس لنا فروع أخرى سوى ابو عبدالرحمن بيرم هنا  اللى كان سعيد بيرم !!!!

 

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

الله الله الله

شكرا لسرعة الاستجابة من أستاذين كبيرين

المخضرم ابو عبد الرحمن والمتألق ابو البراء

حاجة تانية بعد إذنكم

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

بالفرض ان مبلغ القروش 80 قرش ومبلغ الجنيهات 350 جنيها 

الناتج فى خانة القروش = 90 قرش والجنيهات 1 جنيه

شكرا للمساعدة

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

بسيطة أخي ناصر

بالمعادلات قم في خانة الجنيهات بوضع المعادلة التالي

=INT(Biram(A1))

وفي خانة القروش ضع المعادلة التالية

=MOD(Biram(A1),1)*100

هذا بفرض أن الرقم في الخلية A1

إذا لم تعمل معك المعادلة قم باستبدال الفاصلة العادية بفاصلة منقوطة

تقبل تحياتي

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

السلام عليكم

بارك الله فيك ابو البراء

هذا فى حالة لو المبلغ بعمود واحد 

المقصود أن مبلغ الــ  80 قرش بعمود خانة القروش

ومبلغ الــ 350 جنيه بعمود خانة الجنيهات

فرضا مبلغ الــ 350.80 بالعمود A1

بعد إذنك ضع المعادلة التالية بالخلية B1 بخانة القروش 

=IF(A1="";"";RIGHT(A1*100;2))

وهذة المعادلة  بالخلية C1 بخانة بخانة الجنيهات 

=IF(A1="";"";((A1*100)-B1)/100)

 يبقى كدة فصلنا المبلغ لخانتين

الناتج المطلوب بخانة القروش بالخلية D1  تسعون قرشا 

وبخانة الجنيهات بالخلية E1  واحد جنيه 

من أجل الحصول على نتيجه صحيحة وخاصة أن هناك إعفاء 50 جنيها 

واليك أخى المعادلتين المعمول بهم ولكن بدون إعفاء الــ 50 جنيه الاولى وهذا خطأ فى التطبيق

وبعد اذنك ضع المعادلة الاولى بالخلية D1 بخانة القروش 

 

=IF(A1="";"";CEILING(MOD(100*ROUND(SUM(C1;B1/100)*0.006;1);100);0.05))

والمعادلة الثانية بالخلية E1 بخانة الجنيهات

=IF(A1="";"";CEILING(INT(100*ROUND(SUM(C1;B1/100)*0.006;1)/100);0.05))

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

شكرا للمساعدة 

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

أخى ناصر 

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

غالى والطلب رخيص

وبعد إذن اخى الحبيب / ابو البراء

قم بوضع المعادلة التالية بالخلية F1 خانة القروش 

=CEILING(ROUND(MOD(biram(C3+B3/100);1);2);0.05)*100

وهذه المعادلة بالخلية G1 خانة الجنيهات **** ثم اسحب لاسفل لكلا المعادلتين

=INT(ROUND(biram(C3+B3/100);1))

 دائما فى خدمتكم ***** جزاكم الله خيرا وبارك فيكم وكل عام أنتم جميعا بخير

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

الحمد لله أن تم المطلوب على خير .. رغم أنني لم أفهم الجزئية الأخيرة في مشاركتك الأخيرة

حاول فيما بعد أن تدعم شرحك بالصور وبالملفات المرفقة ..

تقبل تحياتي

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

ما شاء الله عليك تدرك ما فاتني ..ولكن اسمح لي بطلب : هل لك أن تجرب المعادلات الخاصة باستخراج القروش والجنيهات في مشاركتي السابقة ...؟ وهل هي تؤدي الغرض بالنسبة لفصل القروش عن الجنيهات أم لا تؤدي الغرض؟

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

اخى الحبيب ابو البراء

السلام عليكم

رغم إجهادى الشديد اليوم إلا اننى لا أستطيع أن أغادر دون رد 

نعم أخى المعادلات المشار اليها تقوم بفصل القروش والجنيهات

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

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

بحيث يكون الناتج بخانة القروش يا إما زيرو يإما خمسه 

شاهد المرفق وانا عارف إنك صعيدى **** فى انتظار المرفق الخاص بك 

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

وتصبح على الف خير **** جزاكم الله خيرا 

حساب الدمغه العادية بالمعادلات والاكواد - سعيد بيرم.rar

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

يعني كل القصة في الدالة Ceiling .. كنت بحسب الموضوع كبير

أما بالنسبة للتقريب فحضرتك دا عملناه في الدالة المعرفة يعني انتهينا منه .. وممكن تستخدم الدالة Ceiling أيضاً في الدالة المعرفة عن طريق استخدام الـ WorksheetFunction يليها اسم الدالة ثم البارامترات الخاصة بها

 

وبعدين ما لهم الصعايدة ..إنت كدا هتزعل نص المصريين وأنا مرضاش لزعلهم .. لازم تعمل صلح للصعايدة وتعزمهم على بطة .. :wink2:

 

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

اخى الحبيب ابو البراء

السلام عليكم

ههههههههههههه

وأنا خدامك وخدام اللى منرضاش نزعلهم

وان كان على البطة فعلى حسابك لان اخوك مزنوق

هناك طلب بالوضوع الجديد رجاء عمل اللازم

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

 

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

وجزيت خيراً بمثل ما دعوت لي ...

بالنسبة للبطة فأخوك مزنوق زيك .. يبقا مفيش غير رجب جاويش اللي ينقذنا في الموضوع ده (إنت ناسي إن فيه بطة باسم المنتدى عنده وإحنا جوزناها وزمانها خلفت أكيد وفيه مزرعة بط عنده)

تم الرد في الموضوع الآخر ..

وتصبح على خير .. يا غالي

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

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