ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
25 visibility
موضوع: آفیس توسط:

Ray می داند که می تواند برای برگه های کاربرگ که در پایین صفحه اکسل نمایش داده می شوند، رنگی تعیین کند. او فکر می کند که آیا می تواند آن رنگ را مشروط به محتویات یا وضعیت کاربرگ کند. برای مثال، او می خواهد اگر ورودی کاربر در کاربرگ مورد نیاز است، برگه زرد و اگر ورودی واقعاً وارد شده باشد، سبز باشد.

تغییر رنگ برگه کاربرگ فقط به صورت دستی یا از طریق ماکرو امکان پذیر است. در اینجا یک ماکرو ساده وجود دارد که دو سلول در کاربرگ را بررسی می کند، می بیند که آیا چیزی در آن سلول ها وجود دارد یا خیر، و سپس رنگ برگه را بر اساس یافته ها تغییر می دهد:

Sub ChangeColor()
    If Range("A1") = "" Or Range("A5") = "" Then
        ActiveSheet.Tab.Color = vbYellow
    Else
        ActiveSheet.Tab.Color = vbGreen
  End If
End Sub

البته مشکل چنین ماکرویی این است که باید آن را به صورت دستی اجرا کنید. اگر می خواهید تغییرات رنگ خودکارتر باشد، می توانید منطق را در یک کنترل کننده رویداد بگنجانید. این ماکرو باید به کد مربوط به خود کاربرگ اضافه شود. (روی برگه کاربرگ راست کلیک کرده و View Code را از منوی زمینه ایجاد شده انتخاب کنید. اینجاست که این ماکرو می رود.)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Range("A1") = "" Or Range("A5") = "" Then
        ActiveSheet.Tab.Color = vbYellow
    Else
        ActiveSheet.Tab.Color = vbGreen
    End If
End Sub

ماکرو فقط روی کاربرگ واحد تأثیر می گذارد و هر بار که سلول انتخاب شده در آن کاربرگ را تغییر می دهید فعال می شود. اگر چیزی می خواهید که کمتر اجرا شود و راحت تر به چندین کاربرگ اضافه شود، یک روش خوب این است که از سه ماکرو استفاده کنید - دو تا در پنجره کد برای کاربرگ و یکی در یک ماژول معمولی. این چیزی است که باید در ماژول ماکرو معمولی قرار دهید:

Private Sub SetTabColor(sRangeName)
    Dim c As Range

    Me.Tab.Color = vbGreen
    For Each c In Range(sRangeName).Cells
        If IsEmpty(c) Then
            Me.Tab.Color = vbYellow
            Exit For
        End If
    Next c
End Sub

این ماکرو آزمایش می کند تا ببیند آیا هر یک از سلول های یک محدوده نامگذاری شده خالی است یا خیر. اگر این اتفاق افتاد، رنگ برگه روی زرد تنظیم می شود. (شما می توانید به راحتی شرایط آزمایش را قبل از تنظیم رنگ برگه تغییر دهید.) برای اینکه ماکرو کار کند، باید دو ماکرو زیر را به پنجره کد صفحه کاری که می خواهید آزمایش کنید اضافه کنید:

Private Sub Worksheet_Activate()
    SetTabColor("CheckRange")
End Sub
Private Sub Worksheet_Deactivate()
    SetTabColor("CheckRange")
End Sub

توجه داشته باشید که هر زمان که کاربرگ فعال یا غیرفعال شود، گرداننده های رویداد اجرا می شوند. همچنین توجه داشته باشید که نام محدوده نام گذاری شده حاوی سلول های مورد بررسی به ماکرو SetTabColor ارسال می شود. به این ترتیب، اگر این دو ماکرو را به چندین کاربرگ اضافه کنید، تنها کاری که باید انجام دهید این است که نام محدوده را برای هر یک از آن کاربرگ ها تغییر دهید.

اگر حتی نیازهای پیچیده تری برای تغییر رنگ برگه ها دارید، با بررسی این نکته و استفاده از تکنیک های مختلف مورد بحث در آنجا سود خواهید برد:

https://tips.net/T013710
اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 40 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 37 visibility
ارسال شده در 27 تیر 1402 موضوع: آفیس توسط: Admin
0 دوستدار 0 امتیاز منفی
0 پاسخ 43 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 26 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 29 visibility
ارسال شده در 26 تیر 1402 موضوع: آفیس توسط: Admin

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

230 نفر آنلاین
0 عضو و 230 مهمان در سایت حاضرند
بازدید امروز: 22092
بازدید دیروز: 17853
بازدید کل: 20334273
...