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

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

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

انشاء كود برمجى فيجوال بيسك 

أو المعادلات وللعلم بأن الخلايا بالجدول مملؤة يدويا واحتاج الكود للملء التلقائى أو وضع معادلات داخل الخلايا

تطبيق على ورقة 10

عمل سطر برمجى لكل خلية منفصل عما قبله

C3=G4

GO TO E3 قيمتها

 =E3 نهاية يونيو الذى يلى التاريخ الموجود فى C3 وإذا كانت قيمتها أكبرمن G5 اكتب G5

GO TO C4

C4 = E3+1

GO TO E4

=E4 نهاية يونيو الذى يلى التاريخ الموجود فى C4 وإذا كانت قيمتها أكبر من G5 اكتب G5

GO TO C5

C5 = E4+1

GO TO E5

=E5 نهاية يونيو الذى يلى التاريخ الموجود فى C5 وإذا كانت قيمتها أكبر من G5 اكتب G5

GO TO C6

C6 = E5+1

GO TO E6

=E6 نهاية يونيو الذى يلى التاريخ الموجود فى C5 وإذا كانت قيمتها اكبرمن G5 اكتب G5

GO TO C7

C7 = E6+1

GO TO E7

=E7 نهاية يونيو الذى يلى التاريخ الموجود فى C6 وإذا كانت قيمتها أكبر من G5 اكتب G5

GO TO C8

C8 = E7+1

GO TO E8

=E8 نهاية يونيو الذى يلى التاريخ الموجود فى C7 وإذا كانت قيمتها أكبر من G5 اكتب G5

GO TO C9

C9 = E8+1

GO TO E9

=E9 نهاية يونيو الذى يلى التاريخ الموجود فى C8 وإذا كانت قيمتها أكبر من G5 اكتب G5

GO TO C10

C10 = E9+1

GO TO E10

=E10 نهاية يونيو الذى يلى التاريخ الموجود فى C9 وإذا كانت قيمتها أكبر من G5 اكتب G5

المصنف (155).xlsx

 

 

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

تفضل جرب هذا  

 

 

 

 

الحل باستخدام المعادلات مباشرة في الخلايا:

يمكنك وضع المعادلات التالية مباشرة في الخلايا المطلوبة في ورقة "Sheet10":

    الخلية C3: =G4
    الخلية E3: =IF(EOMONTH(C3,6)>G5,G5,EOMONTH(C3,6))
    الخلية C4: =E3+1
    الخلية E4: =IF(EOMONTH(C4,6)>G5,G5,EOMONTH(C4,6))
    الخلية C5: =E4+1
    الخلية E5: =IF(EOMONTH(C5,6)>G5,G5,EOMONTH(C5,6))
    الخلية C6: =E5+1
    الخلية E6: =IF(EOMONTH(C6,6)>G5,G5,EOMONTH(C6,6))
    الخلية C7: =E6+1
    الخلية E7: =IF(EOMONTH(C7,6)>G5,G5,EOMONTH(C7,6))
    الخلية C8: =E7+1
    الخلية E8: =IF(EOMONTH(C8,6)>G5,G5,EOMONTH(C8,6))
    الخلية C9: =E8+1
    الخلية E9: =IF(EOMONTH(C9,6)>G5,G5,EOMONTH(C9,6))
    الخلية C10: =E9+1
    الخلية E10: =IF(EOMONTH(C10,6)>G5,G5,EOMONTH(C10,6))

شرح المعادلات:

    EOMONTH(date, months): تقوم هذه الدالة بإرجاع تاريخ نهاية الشهر الذي يقع قبل أو بعد عدد محدد من الأشهر من تاريخ البداية. في حالتنا، نضيف 6 أشهر إلى التاريخ الموجود في العمود C للحصول على نهاية شهر يونيو التالي.
    IF(logical_test, value_if_true, value_if_false): تقوم هذه الدالة بفحص شرط معين. إذا كان الشرط صحيحًا، فإنها ترجع القيمة الأولى؛ وإلا فإنها ترجع القيمة الثانية. في حالتنا، نتحقق مما إذا كان تاريخ نهاية يونيو أكبر من القيمة الموجودة في الخلية G5. إذا كان أكبر، نكتب قيمة G5؛ وإلا، نكتب تاريخ نهاية يونيو.

ملاحظات:

    تأكد من أن ورقة العمل التي تريد تطبيق الكود أو المعادلات عليها اسمها "Sheet10" بالضبط. إذا كان اسمها مختلفًا، فقم بتعديل اسم الورقة في كود VBA أو عند الإشارة إلى الخلايا في المعادلات.
    في كود VBA، يتم تنفيذ كل سطر برمجي بشكل منفصل كما طلبت.
    باستخدام المعادلات، ستتحدث الخلايا تلقائيًا عند تغيير القيم في الخلايا التي تعتمد عليها (مثل G4 أو الخلايا في العمود C).

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

 

 

Sub FillCells()

    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("ورقة 10")

    ' تعيين قيمة الخلية C3
    ws.Range("C3").Value = ws.Range("G4").Value

    ' تعيين معادلة الخلية E3
    ws.Range("E3").Formula = "=IF(EOMONTH(C3,6)>G5,G5,EOMONTH(C3,6))"

    ' تعيين قيمة الخلية C4
    ws.Range("C4").Value = ws.Range("E3").Value + 1

    ' تعيين معادلة الخلية E4
    ws.Range("E4").Formula = "=IF(EOMONTH(C4,6)>G5,G5,EOMONTH(C4,6))"

    ' تعيين قيمة الخلية C5
    ws.Range("C5").Value = ws.Range("E4").Value + 1

    ' تعيين معادلة الخلية E5
    ws.Range("E5").Formula = "=IF(EOMONTH(C5,6)>G5,G5,EOMONTH(C5,6))"

    ' تعيين قيمة الخلية C6
    ws.Range("C6").Value = ws.Range("E5").Value + 1

    ' تعيين معادلة الخلية E6
    ws.Range("E6").Formula = "=IF(EOMONTH(C6,6)>G5,G5,EOMONTH(C6,6))"

    ' تعيين قيمة الخلية C7
    ws.Range("C7").Value = ws.Range("E6").Value + 1

    ' تعيين معادلة الخلية E7
    ws.Range("E7").Formula = "=IF(EOMONTH(C7,6)>G5,G5,EOMONTH(C7,6))"

    ' تعيين قيمة الخلية C8
    ws.Range("C8").Value = ws.Range("E7").Value + 1

    ' تعيين معادلة الخلية E8
    ws.Range("E8").Formula = "=IF(EOMONTH(C8,6)>G5,G5,EOMONTH(C8,6))"

    ' تعيين قيمة الخلية C9
    ws.Range("C9").Value = ws.Range("E8").Value + 1

    ' تعيين معادلة الخلية E9
    ws.Range("E9").Formula = "=IF(EOMONTH(C9,6)>G5,G5,EOMONTH(C9,6))"

    ' تعيين قيمة الخلية C10
    ws.Range("C10").Value = ws.Range("E9").Value + 1

    ' تعيين معادلة الخلية E10
    ws.Range("E10").Formula = "=IF(EOMONTH(C10,6)>G5,G5,EOMONTH(C10,6))"

End Sub

 

المصنف (155).xlsm

  • Like 1

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