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

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

قام بنشر

السلام عليكم 

كل عام وانتم بخير 

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

مرفق لكم ملف اكسيل يشرح المطلوب 

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

Book1.xlsx

قام بنشر (معدل)

جرب هذا الكود 

تحليل الكود:

    يقوم الكود بحساب مدة الالتزامات بناءً على شهور البداية والنهاية الموجودة في ورقة عمل Excel، ثم يحسب المدة الإجمالية والمتبقية.
    الخطوات:
        تحديد ورقة العمل: يتم تحديد ورقة العمل المسماة "Sheet1" (يمكنك تغييرها حسب الحاجة).
        حساب مدد الالتزامات:
            يتم المرور على كل صف في العمود "A" (بدءًا من الصف الثاني).
            يتم استخراج شهور البداية والنهاية من العمودين "D" و "F" على التوالي.
            يتم حساب المدة لكل التزام (شهر النهاية - شهر البداية + 1) وتخزينها في العمود "H".
            يتم حساب المدة الإجمالية لكل الالتزامات.
        حساب المدة المتبقية: يتم حساب المدة المتبقية بطرح المدة الإجمالية من 240.
        كتابة النتائج: يتم كتابة المدة الإجمالية والمدة المتبقية في الصفوف التالية لآخر صف مستخدم في العمود "A".
        رسالة تأكيد: يتم عرض رسالة تأكيد للمستخدم.

 

 
Sub RoundedRectangle6_Click()
  Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim totalDuration As Long
    Dim remainingDuration As Long
    Dim startMonth As Long
    Dim endMonth As Long

    ' تحديد ورقة العمل
    Set ws = ThisWorkbook.Sheets("Sheet1") ' استبدل "Sheet1" باسم ورقة العمل الخاصة بك


    ' حساب مدد الالتزامات
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    For i = 2 To lastRow
        startMonth = Val(ws.Cells(i, "D").Value)
        endMonth = Val(ws.Cells(i, "F").Value)
        ws.Cells(i, "H").Value = endMonth - startMonth + 1
        totalDuration = totalDuration + ws.Cells(i, "H").Value
    Next i

    ' حساب المدة المتبقية
    remainingDuration = 240 - totalDuration

    ' كتابة المدة الإجمالية والمدة المتبقية
    ws.Cells(lastRow + 2, "A").Value = "المدة الإجمالية:"
    ws.Cells(lastRow + 2, "B").Value = totalDuration
    ws.Cells(lastRow + 3, "A").Value = "المدة المتبقية:"
    ws.Cells(lastRow + 3, "B").Value = remainingDuration

    ' رسالة تأكيد
    MsgBox "تم إنشاء الجدول وحساب المدد."

End Sub

 

تم تعديل بواسطه mahmoud nasr alhasany
  • Like 1
قام بنشر

السلام عليكم استاذ محمود 

كل عام وانتم بخير 

وشكرا لكم على مساعدتك ووالمشاركة 

انا ارفقت ملف جديد يوضح المطلوب في جدوله تحت الجدول الرئيسي 

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

واعتذر ان اطلت عليكم واعتذر عن سوء الشرح ويرب يكون وصلت فكرتي 

Bookk3.xlsx

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