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

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

قام بنشر

المطلوب كود يوضع فى حدث ورقة العمل ليعمل فى جميع شيتات الورقة فى حالة توفر الشروط
خلية الشرط V1
الحالة 1 إذا كانت قيمة الخلية V1 هى 28 يتم إخفاء الأسطر من 1363 الى 1387
الحالة 2 إذا كانت قيمة الخلية V1 هى 29 يتم إخفاء الأسطر  1361 و 1362
و شكراً لكم مقدماً
 

قام بنشر

إذا كان المطلوب أن يعمل الكود في حدث التغيير في جميع الشيتات

فيجب وضع الكود في هذا المصنف thisworkbook

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

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If [v1] = 28 Then
Sh.Rows("1363:1387").Hidden = True
Sh.Rows("1361:1362").Hidden = False
Else
Sh.Rows("1363:1387").Hidden = False
Sh.Rows("1361:1362").Hidden = True
End If
End Sub

ويمكن اختصاره إلى هذا

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Sh.Rows("1363:1387").Hidden = IIf([v1] = 28, True, False)
Sh.Rows("1361:1362").Hidden = IIf([v1] = 28, False, True)
End Sub

بالتوفيق

  • Like 2
  • Thanks 2
قام بنشر

الأخ الغالى الأستاذ محمد صالح
الف شكر لمعاليك الكود يعمل بكفاءة
هل أطمع فى شرح لكل سطر فى الكود ؟؟

قام بنشر

الحمد لله الذي وفقنا لهذا

الكود ترجمة لمطلوبك تماما

اذا كانت قيمة الخلية V1 = 28 يظهر الصفوف كذا ويخفي كذا

واذا لم تكن 28 يعمل العكس

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

  • Thanks 1
قام بنشر

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

قام بنشر

ينطبق على الأول والثاني اخي الكريم

هي مجرد استعمال لقاعدة IF في سطر واحد لذلك تكتب IIF

خاصية الإخفاء للصفوف كذا هي نتيجة الشرط true أو false

والشرط هو V1 = 28

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

  • 3 weeks later...
قام بنشر
في 26‏/11‏/2023 at 09:10, أ / محمد صالح said:

ينطبق على الأول والثاني اخي الكريم

هي مجرد استعمال لقاعدة IF في سطر واحد لذلك تكتب IIF

خاصية الإخفاء للصفوف كذا هي نتيجة الشرط true أو false

والشرط هو V1 = 28

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

السلام عليكم أخى محمد صالح
الكود كان شغال تمام التمام لكن معرفش ليه مابقاش يشتغل
المفروض فى صفحة النتيجة لما بغير السنة فى الخلية A1 سواء بالكتابة أو بالأسهم بيتغير التاريخ فى الخلية AK3 اللى بتسمع فى شيت أيام السنة فى الخلية A2 و بناء عليه يتغير الرقم فى الخلية V1 بين 28 أو 29 اللى بناء عليه هتختفى الأسطر أو هتظهر
مرفق الملف لإلقاء نظرة لإصلاح العطل

تنظيم الحجوزات.rar

  • أفضل إجابة
قام بنشر

The error is because you have protected your worksheets so I think you encountered the error. To fix the problem just unprotect the worksheet before working on it and at the end to protect it again

Sub HideRowsBasedOnCondition()
    Dim conditionValue, ws As Worksheet, conditionCell As Range, rowRange As Range
    For Each ws In ThisWorkbook.Sheets
        Set conditionCell = ws.Range("V1")
        conditionValue = conditionCell.Value
        ws.Unprotect
            ws.Rows.Hidden = False
            If conditionValue = 28 Then
                Set rowRange = ws.Rows("1363:1387")
                rowRange.Hidden = True
            ElseIf conditionValue = 29 Then
                Set rowRange = ws.Rows("1361:1362")
                rowRange.Hidden = True
            End If
        ws.Protect
    Next ws
End Sub

I just added two lines

ws.Unprotect

And

ws.Protect

 

  • 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