Note: The other languages of the website are Google-translated. Back to English
Увійти  \/ 
x
or
x
Реєстрація  \/ 
x

or

Як змінити колір вкладки аркуша на основі значення комірки?

Зазвичай ви можете легко і швидко змінити колір вкладки в Excel, але чи намагались ви коли-небудь змінювати колір вкладки на основі значення комірки на аркуші? Якщо вас цікавить це завдання, я розповім про деякі коди для того, щоб розфарбувати вкладку аркуша на основі певного значення комірки в Excel.

Змініть колір вкладки одного аркуша на основі значення комірки за допомогою коду VBA

Змінюйте кілька вкладок аркуша на основі значення комірки за допомогою коду VBA


стрілка синя права міхур Змініть колір вкладки одного аркуша на основі значення комірки за допомогою коду VBA

Наприклад, я хочу, щоб поточний колір вкладки аркуша був зеленим, якщо значенням клітинки в А1 є текст "TRUE", кольором вкладки буде червоний, якщо текст у A1 "FALSE", а кольором вкладки буде синій, якщо значення в комірці A1 - це будь-який інший текст, як показано на наступному знімку екрана:

doc кольоровий аркуш за значенням 1

1. Клацніть правою кнопкою миші вкладку аркуша, для якої потрібно змінити його колір на основі даних у комірці A1, а потім виберіть Переглянути код з контекстного меню.

2, в Microsoft Visual Basic для додатків вікно, скопіюйте та вставте наведений нижче код VBA в Модулі вікна.

Код VBA: Змініть колір вкладки одного аркуша на основі значення комірки:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    If Target.Address = "$A$1" Then
        Select Case Target.Value
        Case "False"
            Me.Tab.Color = vbRed
        Case "True"
            Me.Tab.Color = vbGreen
        Case Else
            Me.Tab.Color = vbBlue
        End Select
    End If
End Sub

doc кольоровий аркуш за значенням 2

Примітка: У наведеному вище коді A1 - це посилання на клітинку, за якою потрібно забарвити вкладку, “Правда»,«Помилковий”- це текст, який вам потрібен, ви можете змінити їх відповідно до своїх потреб, а також можете змінити колір у коді, як вам потрібно.

3. Потім збережіть і закрийте це вікно коду, тепер, коли ви введете текст «True» у комірку A1, поточний колір вкладки стане зеленим, а коли ви введете текст «False» у комірку A1, колір вкладки стане червоним, а якщо в комірку А1 буде введено інший текст, колір вкладки автоматично стане синім.


стрілка синя права міхур Змінюйте кілька вкладок аркуша на основі значення комірки за допомогою коду VBA

Якщо вам потрібно змінити колір декількох вкладки аркуша на основі значення комірки, ось також код може вам допомогти, будь ласка, зробіть наступне:

1. Утримуйте клавішу ALT + F11 ключі, щоб відкрити Microsoft Visual Basic для додатків у відкритому вікні двічі клацніть ThisWorkbook під VBAProject розділу, а потім скопіюйте та вставте наведений нижче код у порожній Модулі:

Код VBA: Змінення декількох вкладки аркуша на основі значення комірки:

Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  'Updateby Extendoffice 20160930
  Select Case Sheets("Master").Range("A1").Value
         Case "KTE"
             Sheets("Sheet1").Tab.Color = vbRed
         Case "KTO"
             Sheets("Sheet2").Tab.Color = vbGreen
         Case "KTW"
             Sheets("Sheet3").Tab.Color = vbBlue
         End Select
End Sub

doc кольоровий аркуш за значенням 3

Примітка: У наведеному вище коді A1 і Master - це комірка та робочий аркуш, на яких ви хочете забарвити вкладку, Sheet1, Sheet2, Sheet3 - це аркуші, на яких потрібно забарвити вкладки. КТЕ, KTW, KTO - це значення комірок в А1, на основі яких ви хочете розфарбувати вкладки, ви можете змінювати посилання та кольори в коді, як вам потрібно.

2. Потім збережіть і закрийте це вікно коду, тепер, коли ви вводите текст KTE в комірку A1 головного аркуша, вкладка Sheet1 буде забарвлена ​​червоним кольором, коли ви введете KTO в комірку A1, Sheet2 буде забарвлений зеленим кольором, а коли ви введете KTW в комірку A1, Sheet3 буде забарвлений у синій колір, див. знімок екрана:

doc кольоровий аркуш за значенням 4


Найкращі інструменти для підвищення продуктивності офісу

Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

  • Повторне використання: Швидко вставте складні формули, діаграми і все, що ви використовували раніше; Шифрувати комірки з паролем; Створити список розсилки та надсилати електронні листи ...
  • Супер формула бар (легко редагувати кілька рядків тексту та формули); Макет читання (легко читати та редагувати велику кількість комірок); Вставте у відфільтрований діапазон...
  • Об’єднати клітинки / рядки / стовпці без втрати даних; Вміст розділених комірок; Об'єднати повторювані рядки / стовпці... Запобігання дублюючим клітинам; Порівняйте діапазони...
  • Виберіть Повторюваний або Унікальний Рядки; Виберіть Пусті рядки (усі клітинки порожні); Супер знахідка та нечітка знахідка у багатьох робочих зошитах; Випадковий вибір ...
  • Точна копія Кілька клітинок без зміни посилання на формулу; Автоматичне створення посилань на кілька аркушів; Вставте кулі, Прапорці та інше ...
  • Витяг тексту, Додати текст, Видалити за позицією, Видаліть пробіл; Створення та друк проміжних підсумків підкачки; Перетворення вмісту комірок та коментарів...
  • Супер фільтр (зберегти та застосувати схеми фільтрів до інших аркушів); Розширене сортування за місяцем / тижнем / днем, частотою та іншим; Спеціальний фільтр жирним, курсивом ...
  • Поєднайте робочі зошити та робочі аркуші; Об’єднати таблиці на основі ключових стовпців; Розділіть дані на кілька аркушів; Пакетне перетворення xls, xlsx та PDF...
  • Понад 300 потужних функцій. Підтримує Office / Excel 2007-2019 та 365. Підтримує всі мови. Простота розгортання на вашому підприємстві чи в організації. Повна функція 30-денної безкоштовної пробної версії. 60-денна гарантія повернення грошей.
вкладка kte 201905

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Justin · 5 months ago
    Im looking to change to color of the tab based off one of 2 outcomes of a formula I have a formula of
    =IF((AND(AA1="Occupied",AA2="Occupied",AA3="Occupied",AA4="Occupied")),"Occupied","Vacant")
    I need the tab to be red if "Occupied" and green if "Vacant". However the code above in the main post doesn't recognize the output of the If Than
  • To post as a guest, your comment is unpublished.
    Brad · 1 years ago
    Hello, Trying to have tab colour change based on value on a seperate sheet called Tracking here is what I tried but it does not seem to be working. Thanks




    Private Sub Worksheet_Change(ByVal Target As Range)
    'Updateby Extendoffice 20160930
    If Target.Address = "Tracking!$C$2" Then
    Select Case Target.Value
    Case "ip"
    Me.Tab.Color = vbRed
    Case "w"
    Me.Tab.Color = vbYellow
    Case "c"
    Me.Tab.Color = vbGreen
    Case Else
    Me.Tab.Color = vbBlue
    End Select
    End If
    End Sub
    • To post as a guest, your comment is unpublished.
      skyyang · 1 years ago
      Hello, Brad,
      To make the code run correctly, you should not insert the sheet name into the code, please apple the following code:(click the sheet name you want to run this code, and then right clik the sheet name, and choose View Code, then paste the code into the module)

      Private Sub Worksheet_Change(ByVal Target As Range)
      'Updateby Extendoffice 20160930
      If Target.Address = "$C$2" Then
      Select Case Target.Value
      Case "ip"
      Me.Tab.Color = vbRed
      Case "w"
      Me.Tab.Color = vbYellow
      Case "c"
      Me.Tab.Color = vbGreen
      Case Else
      Me.Tab.Color = vbBlue
      End Select
      End If
      End Sub

      Please try, hope it can help you!
  • To post as a guest, your comment is unpublished.
    Brage · 2 years ago
    Hello,

    Never done code in excel before. I need a code that do what this code do, but I need another parameter.

    So what I need is:

    If cell value is not 0, and/or if some other cell has numbers in it, using count, then change color to red

    If cell value is 0 and those other cells are empty, using count, then change color to green
  • To post as a guest, your comment is unpublished.
    Rothera Rob · 2 years ago
    How would you link the tab to a value in a different tab. In my example I have one tab with all the information that filters out to various tabs automatically. However each tab will read green or red, depending on whether there is a bAlance outstanding on the master tab. Can this be done using this code and if so, where do I write the link to the master sheet within this code?
  • To post as a guest, your comment is unpublished.
    Q · 2 years ago
    Hello everyone, how do i change tab colour based on a certain value in the column of the multiple sheets? Thanks
  • To post as a guest, your comment is unpublished.
    NomacK · 2 years ago
    Dear colleagues,
    Kindly ask for help. I need to change the sheet tab color based on value in format [h]:mm. For example if the value is below 20:00 - red, >20:00 green.
    Thanks and regards!
    • To post as a guest, your comment is unpublished.
      skyyang · 2 years ago
      Hello, Victor,
      The below VBA code can sovle your problem, please try, hope it can help you!

      Private Sub Worksheet_Change(ByVal Target As Range)
      Dim xStr As String
      Dim xSN As String
      Dim xDate As String
      Dim xAddress As String
      Dim xArr() As String
      Dim xI1 As Integer
      Dim xSM As String
      xDate = "20:00"
      xAddress = "$A$1"
      If Target.Address <> xAddress Then Exit Sub
      xStr = Target.Text
      xArr = Split(xStr, ":")
      If (UBound(xArr) - LBound(xArr) + 1) > 2 Then Exit Sub
      xI1 = Int(xArr(0))
      If (Len(xArr(0)) - 2) < 1 Then
      If xI1 > 23 Then Exit Sub
      Else
      Exit Sub
      End If
      xSM = xArr(1)
      On Error GoTo Err01
      If (Len(xSM) - 2) <> 0 Then Exit Sub
      If Int(Left(xSM, 1)) > 5 Then Exit Sub
      If Int(Right(xSM, 1)) > 10 Then Exit Sub
      If xI1 >= 20 Then
      Me.Tab.Color = vbGreen
      Else
      Me.Tab.Color = vbRed
      End If
      Err01:
      End Sub
      • To post as a guest, your comment is unpublished.
        NomacK · 5 months ago
        Dear Skyyang,
        Sorry for the too late feedback. This formula is working when i manually change the value in the cell. But that wasn't what i need.
        The cell value is result of a formula from difference sheets. For example, this is the formula in the cell "O13-'520'!AD3". This means that the value in this cell is changing depending from the value the deferent cell in deferent sheet. What i need is the sheet color to be changed automatically when the value in cell "O13-'520'!AD3" is changed, when the value in the cell "O13-'520'!AD3" is below 05:00 - red, >20:00 green, between 05:00 and 20:00 brown.
        Thank you in advance and best regards!
  • To post as a guest, your comment is unpublished.
    Victor · 2 years ago
    Dear colleagues,
    Kindly ask for help. I need to change the sheet tab color based on value in format [h]:mm. For example if the value is below 20:00 - red, >20:00 green.
    Thanks and regards!
  • To post as a guest, your comment is unpublished.
    Manuel · 3 years ago
    I'm trying to use that code and apply it to a check box, so when I check the box, the color changes, if I uncheck it, it changes back (i got true=green, false=red ,else=red). But when I check and uncheck it throws an error 'object needed'


    Private Sub CheckBox1_Click()
    _____If Target.Address = "$e$5" Then 'error here
    __________Select Case Target.Value
    __________Case "False"
    _______________Me.Tab.Color = vbRed
    __________Case "True"
    _______________Me.Tab.Color = vbGreen
    __________Case Else
    _______________Me.Tab.Color = vbRed
    __________End Select
    _____End If
    End Sub

    I copied and pasted it to see it run and then adjust it to my need but I would not find a way to make it run.
  • To post as a guest, your comment is unpublished.
    Ian · 3 years ago
    Is it possible to make this work when cell A1 can have all 3 answers on separate lines within the cell? That is KTE, KTO and KTW are all present in the cell as it allows multiple selections from a drop down list.
  • To post as a guest, your comment is unpublished.
    Ahmed · 3 years ago
    That was one awesome trick.
    I linked the tab color based on value of cell A1 (<>0 RED and =0 Green), however, the macro executes only if i select A1 , the press F2 and then press enter. Without doing this although the color of the tab ( based on its value ) should be , say Red, but stays green.
    I am using excel 2007.
  • To post as a guest, your comment is unpublished.
    jenlangston15@gmail.com · 3 years ago
    Is there a way to get the tab color to change based on the following: I have a master tab where rows 3-7 are colored blue and will correspond with corresponding tabs 3-7 (which are named based on cell values in the master in those rows) that i would like colored blue. Then rows 8-12 are colored green and also correspond to tabs 8-12 and so on.
  • To post as a guest, your comment is unpublished.
    Shannon · 3 years ago
    The formula is working for 'True' - sheet tab is RED, so that is great but if I change it from 'True' to 'False' I want the sheet tab to have 'no color'. What is the formula for no color on the sheet tab if 'True' is not selected? Also if I want the formula to be for a group of cells eg. A1:A30 what is the code I use?
    • To post as a guest, your comment is unpublished.
      skyyang · 3 years ago
      Hello,Shannon:
      The following VBA code may do you a favor, please try it:

      Private Sub Worksheet_Change(ByVal Target As Range)
      Dim xRg As Range
      Set xRg = Intersect(Target, Range("A1:A30"))
      If xRg Is Nothing Then Exit Sub
      Select Case Target.Value
      Case "True"
      Me.Tab.Color = vbRed
      Case "False"
      Me.Tab.Color = False
      End Select
      End Sub

      Hope this can help you!
  • To post as a guest, your comment is unpublished.
    Rich · 3 years ago
    how can I change a tab color depending on weather a range of cells have text in them
  • To post as a guest, your comment is unpublished.
    Faiz Ibn Uvaiz · 4 years ago
    Dear Sir.
    kindly help me how to change the sheet tab color based on date/day.

    for Eg:-
    if sheet No 1 is Sunday then - sheet tab 'RED'
    if sheet No 2 is Monday then - sheet tab 'Green'
    if sheet No 3 is Tuesday then - sheet tab 'Green'
    if sheet No 4 is Wednesday then - sheet tab 'Green'
    if sheet No 5 is Thursday then - sheet tab 'Green'
    if sheet No 6 is Friday then - sheet tab 'Green'
    if sheet No 7 is Saturday then - sheet tab 'Green'

    kindly help me for the above excel issue.

    Thanks and regards
    Faiz Ibn Uvaiz P.
    • To post as a guest, your comment is unpublished.
      Michael Black · 4 years ago
      Your description is a little vague as to what you are actually trying to do. If the workbook is only for a week then color the tabs. If the duration is longer than a week, then the solution is a little more complex. Until you detail the problem, there are several solutions that are available. I, and many people, will not spend our time coding 2,000 solutions for you for free. But you detail the problem we might provide 1 solution.