Excel vba цвет ярлыка листа


Изменение цвета ярлыков листов

09.12.2013, 14:44
[ Файл-пример (68.5 Kb) ]
В примере ярлык листа с названием «Лист1» станет черным, ярлык второго листа книги станет красным, третьего листа — желтым:

Sub ChangeTabColor()
 ThisWorkbook.Worksheets("Лист1").Tab.ColorIndex = 1
 ThisWorkbook.Worksheets(2).Tab.Color = vbRed
 ThisWorkbook.Worksheets(3).Tab.Color = RGB(255, 255, 0)
End Sub

Удалить раскраску ярлыков листов во всей книге можно так:

Sub ClearTabColor()
 Dim ws As Worksheet
 For Each ws In Worksheets
 ws.Tab.ColorIndex = xlColorIndexNone
 Next ws
End Sub
  • 1
  • 2
  • 3
  • 4
  • 5

Добавил: Serge_007 |

| Теги: ярлыки листов, vba, ВБА, цвет ярлыка листа

Просмотров: 10461

| Рейтинг: 5.0/1

Всего комментариев: 4

Порядок вывода комментариев:


   Здравствуйте! Подскажите пожалуйста, а если в книге много листов их все надо перечислять в ThisWorkbook.Worksheets ? Может есть какое-то условие, которое проверяет сколько листов в книге и все их раскрашивает? B)

Добавлять комментарии могут только зарегистрированные пользователи.

[

Регистрация

|

Вход

]

 

wertual

Пользователь

Сообщений: 24
Регистрация: 22.02.2013

Добрый день!

Изменение цвета ярлыка листа при каком либо условии вообще возможно? Если да, то как?
Помогите пожалуйста.

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

 

Nic70y

Пользователь

Сообщений: 3289
Регистрация: 22.12.2012

Win7 MSO 2013

Ни чего в макросах не понимаю.
Для интереса записал рекордерем (чуть изменил) работает:

Прикрепленные файлы

  • 800.xls (37 КБ)

 

wertual

Пользователь

Сообщений: 24
Регистрация: 22.02.2013

К сожалению, у меня ничего не получилось…

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

#5

01.05.2013 00:39:35

Код
Sub Макрос1()
    If Range("A1") > 5 Then
        Sheets("Лист2").Tab.ColorIndex = 3
    Else
        Sheets("Лист2").Tab.ColorIndex = xlNone
    End If
End Sub

Если ячейка А1 активного листа > 5, то ярлычок второго листа заливаем красным. Иначе без заливки.

 

wertual

Пользователь

Сообщений: 24
Регистрация: 22.02.2013

Юрий М, Спасибо! ПОдскажите,а если значение текстовое, например «Да» или «НЕТ»?

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

#7

01.05.2013 01:17:07

Код
If Range("A1") = "Да" Then
 

wertual

Пользователь

Сообщений: 24
Регистрация: 22.02.2013

C цифрами получается, а вот с текстом получается только в одну сторону:
Если «да», то цвет меняет, а вот еслине да, то не меняет…

Спасибо , что откликнулись!
Этот форум очень полезен мне!

Изменено: wertual01.05.2013 01:33:18

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

#9

01.05.2013 01:37:21

Цитата
wertual пишет: C цифрами получается, а вот с текстом нет.

Не верю. А «на лету» — тоже макрос. См. пример: в ячейку А1 Лист1 вводим Да — второй ярлык будет красный, Нет — синий, любое другое значение — без заливки. Код в модуле листа.

Прикрепленные файлы

  • Цвет ярлычка.xls (23 КБ)

 

wertual

Пользователь

Сообщений: 24
Регистрация: 22.02.2013

нет, не работает, видимо у меня что-то не то с Excel… Даже Ваш файлик, за что Вам огромное спасибо, не работает,я его просто качаю, открываю, пишу да в желтой ячейке, а он ничего…  ААА, оказывается я регистр не учел, все работает и прекрасно работает, большущая Вам благодарность!!!

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

Про регистронезависимость Вы ничего не говорили, а для Excel «Да» и «да» — разные вещи))

 

Добрый День Всем!!!
Данный макрос привязал к своему примеру. Все хорошо работает.
Только в моем примере нужно немного по другому реализовать.
Допустим есть выбор в ячейках А1:А6 из диапазона D1:D6. Нужно чтобы При выборе хотя бы одного параметра в ячейках  А1:А6 выделялся цветом соответствующий этому параметру лист. Повторений в ячейках А1:А6 быть не может.
Файл примера прилагаю.
Макрос немного изменил, написал сначала для ячейки А1. Почти все работает. Только остается заливка цветом ярлычка предыдущего выбора.

 

Разобрался немного. Исправил макрос. Теперь при выборе из ячеек А1:А6 закрашиваются ярлычки соответствующих выбранных листов, но если какой либо параметр убираешь из ячеек А1:А6, то закрашенные листы все равно остаются. Не могу сообразить как дописать макрос, чтобы при отсутствии параметра в ячейках А1:А6 на соответствующем листе убиралось бы закрашивание ярлычка листа.
Файл переделанный прилагаю. Подскажите пожалуйста кто знает как сделать.

 

Юрий М

Модератор

Сообщений: 60570
Регистрация: 14.09.2012

Контакты см. в профиле

 

Юрий, Спасибо большое! Все отлично работает!
P.S.: только не могу понять как этот макрос работает.

 

Не могу под свой пример этот макрос переписать.
Например если перемещаю диапазон A1:A6 в колонку B, получается диапазон B1:B6 и меняю в макросе естественно на диапазон B1:B6, то макрос почему то перестает работать

 

k61

Пользователь

Сообщений: 2441
Регистрация: 21.12.2012

#17

22.08.2013 07:56:55

Для столба «B», в этой части кода Юрия исправьте 1 на 2:

Код
If Not IsEmpty(Cells(i, 1)) Then
Sheets(Cells(i, 1).Value).Tab.ColorIndex = 3
End If
 

С этим да, я уже разобрался. Но почему то когда вставляю в свой пример, у меня выводит ошибку на строчку кода:
[CODE][/CODE] Sheets(Cells(i, 4).Value).Tab.ColorIndex = 3

А так впринципе листы закрашиваются даже с ошибкой… только не могу понять что за ошибка

 

k61

Пользователь

Сообщений: 2441
Регистрация: 21.12.2012

Ну видимо листа с именем равным значению в ячейке Cells(i, 4) не существует.
Почему Cells(i, 4).Value, если речь идёт о столбце «B» (втором)?

 

AlexZanderG

Пользователь

Сообщений: 41
Регистрация: 21.07.2013

#20

22.08.2013 08:32:40

Извините. да немного перепутал.
Допустим речь идет о столбце B. Но данные параметры находятся в ячейках B1, B6, B11, B16, B21, B26.
В других ячейках B2, B3 и т.д. находятся какие либо слова, по которым не надо проводить закрашивание листов.

Вот код я изменил немного.

Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("B1, B6, B11, B16, B21, B26")) Is Nothing Then
        
        For i = 2 To Sheets.Count
            Sheets(i).Tab.ColorIndex = xlNone
        Next
        For i = 1 To 26
            If Not IsEmpty(Cells(i, 2)) Then
                Sheets(Cells(i, 2).Value).Tab.ColorIndex = 3
            End If
        Next
    End If
End Sub

Но не знаю как поменять данную строчку кода чтоб он не по всем 26 строчкам считывал а только по данным (1, 6, 11, 16, 21, 26):

Код
        For i = 1 To 26

Файл прилагаю так же.

Прикрепленные файлы

  • Цвет ярлычка 03.xls (44 КБ)

 

k61

Пользователь

Сообщений: 2441
Регистрация: 21.12.2012

#21

22.08.2013 08:49:14

Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Dim sss()
If Target.Cells.Count > 1 Then Exit Sub
  If Not Intersect(Target, Range("B1, B6, B11, B16, B21, B26")) Is Nothing Then
  For i = 2 To Sheets.Count
  Sheets(i).Tab.ColorIndex = xlNone
  Next
  sss = Array("1", "6", "11", "16", "21", "26")
  For i = 0 To 5
    If Not IsEmpty(Cells(Val(sss(i)), 2)) Then
    Sheets(Cells(Val(sss(i)), 2).Value).Tab.ColorIndex = 3
    End If
  Next
End If
End Sub
 

k61, спасибо большое Вам! все работает хорошо! Код понял как работает.

 

k61

Пользователь

Сообщений: 2441
Регистрация: 21.12.2012

#23

22.08.2013 09:09:38

Укоротим.

Код
Private Sub Worksheet_Change(ByVal Target As Range)
Set rrr = Range("B1, B6, B11, B16, B21, B26")
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, rrr) Is Nothing Then
  For i = 2 To Sheets.Count
  Sheets(i).Tab.ColorIndex = xlNone
  Next
  For Each r In rrr
    If Not IsEmpty(r) Then
    Sheets(r.Value).Tab.ColorIndex = 3
    End If
  Next r
End If
End Sub
 

Да, последний код будет универсальнее. Спасибо большое Вам!

 

sandiro

Пользователь

Сообщений: 27
Регистрация: 20.10.2015

Добрый день!
Подскажите новичку

На листе Лист1 в зависимости от результатов вычислений ячейки  A1 и B1 окрашиваются обе в красный или зелёный цвет .
А можно ли сделать так что б  цвет листа Лист1  окрашивался тем же цветом что и ячейки ?

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

sandiro, можно. С Вас файл-пример.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

sandiro

Пользователь

Сообщений: 27
Регистрация: 20.10.2015

Вот пример

Прикрепленные файлы

  • Пример.xlsx (10.55 КБ)

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

#28

28.10.2015 15:39:03

в модуле листа

Прикрепленные файлы

  • Пример (25).xlsb (15.55 КБ)

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

sandiro

Пользователь

Сообщений: 27
Регистрация: 20.10.2015

 

sandiro

Пользователь

Сообщений: 27
Регистрация: 20.10.2015

#30

29.10.2015 16:15:56

Тогда ещё спрошу…
Есть Лист1 на нём три диапазона с данными  B3 : B6 , C3 : C6 , D3 : D6
Если сумма значений в (B3 : B6) =  (C3 : C6) + (D3 : D6) ярлык Лист1 был зелёного цвета,
если не равно — красного

Очень надо…

Прикрепленные файлы

  • Пример 222.xlsm (10.39 КБ)

Ага! Это же, сколько переключателей надо будет установить.
Да и подсветка ярлычка, это что бы видно было, что ответ не верный и можно было вернуться и исправить?

Простейший вариант решения задачи!

Ага! Это же, сколько переключателей надо будет установить.
Да и подсветка ярлычка, это что бы видно было, что ответ не верный и можно было вернуться и исправить?

Простейший вариант решения задачи! Wasilich

Ага! Это же, сколько переключателей надо будет установить.
Да и подсветка ярлычка, это что бы видно было, что ответ не верный и можно было вернуться и исправить?

Простейший вариант решения задачи! Автор — Wasilich
Дата добавления — 03.03.2014 в 00:29

Источник

Свойство Interior.Color (Excel)

Возвращает или задает основной цвет объекта, как показано в таблице в разделе примечаний. Используйте функцию RGB для создания значения цвета. Для чтения и записи, Variant.

Синтаксис

expression. Цвет

Выражение Выражение, возвращающее объект Interior .

Примечания

Object Цвет
Border Цвет границы.
Borders Цвет всех четырех границ диапазона. Если они не совпадают по цвету, функция Color возвращает значение 0 (ноль).
Font Цвет шрифта.
Interior Цвет заливки ячейки или цвет заливки объекта рисунка.
Вкладка Цвет вкладки.

Пример

В этом примере задается цвет меток галочки на оси значений на диаграмме Chart1.

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

Ярлыки листов в MS Excel: создание, удаление, переименование и и изменение цвета

Знаете почему при открытии и сохранении электронной таблицы MS Excel, она называется не иначе как «Книга»? Конечно потому, что в вашем excel-документе может быть не один лист с единственной таблицей (даже если она очень большая), а сразу несколько листов с совершенно разными таблицами.

К примеру при планировании личных финансов в экселе, можно создать 12 листов — по месяцам, или же создать одну «рабочую» эксель-книгу для учета различных мелочей, где, опять же на разных листах, будут представлены разные таблицы.

Обратите внимание на нижний левый угол документа MS Excel — видите список ярлыков?

Ярлыки листов в документе MS Excel

Ярлыки в excel и страницы в excel — «книге»

Каждый ярлык указывает на отдельный лист табличного документа MS Excel. По-умолчанию, они называются незатейливо: Лист1, Лист2 и т.п. Однако вы легко можете задать им нужные имена, просто щелкнув по ярлыку листа два раза левой кнопкой мыши и введя новое название, или же щелкнув по нему правой кнопкой мыши и выбрав пункт «Переименовать«.

Нажатием на значок «+» рядом с первым из ярлыков листа, вы можете создать нужное количество чистых листов, которые будут помещены в вашу «книгу» MS Excel. Новые рабочие листы добавляются в документ в хронологическом порядке.

Впрочем, если вы создали слишком много листов, то не расстраивайтесь — это просто исправить. Щелкните по ярлыку листа правой кнопкой мыши и выберите пункт «Удалить«. Лист с таблицей будет удален из документа.

Переименование ярлыков листов в документе MS Excel

Действия с ярлыками в документе excel

Кроме создания и удаления, ярлыки можно перемещать и выстраивать в нужном порядке. Просто щелкните по одному из них левой кнопкой мыши (один раз) и не отпуская клавишу, перенесите ярлык влево или вправо. Готово — ярлык переместился на свое место.

Ярлыки MS Excel можно группировать — щелкните по первому ярлыку левой кнопкой мыши (один раз), зажмите клавишу Ctrl и щелкните мышью по другим нужным ярлыкам. Все они станут помечены зеленой полоской по нижнему краю. Сгруппированные ярлыки перемещаются «всей толпой», а если вы введете какие-либо данные на лист одного из них, те же самые данные автоматически появятся и на других листах группы.

Это очень удобно, когда вам нужно создать на нескольких листах, к примеру, одинаковый шаблон таблицы — просто сгруппируйте их, нарисуйте таблицу один раз (таблица появится на всех листах) и снимите группировку. Теперь каждый лист MS Excel снова станет «независимым» и вы сможете ввести в него нужные данные.

Как снять группировку с листов MS Excel? Также как ставили — удерживая ctrl щелкните по ним левой кнопкой мыши (или щелкнув правой кнопкой выбрать пункт «разгруппировать листы«).

Группировка и разгруппировка ярлыков листов в таблице эксель

Цветные ярлыки для листов Excel

Если у вас большая рабочая книга, в которой несколько листов содержат связанные данные, то в этом случае может оказаться полезным объединить их в логическую группу и пометить цветом, например выделить одинаковым цветом ярлыки этих листов.

Чтобы сделать ярлык рабочего листа цветным, просто щелкните на нем правой кнопкой мыши и в появившемся контекстном меню выберите команду «Цвет ярлычка» (именно ярлычка! :)).

На экране появится цветовая палитра. Теперь выберите желаемый цвет для ярлыка и щелкните на кнопке «ок» — под именем активного ярлыка появится цветная линия, а сам он немного изменит цвет.

Попробуйте перейти на другой лист. Видели? Помеченный цветом ярлык теперь невозможно не заметить — он целиком окрасился в выбранный вами цвет.

Как уже отмечалось выше — таким образом можно выделить не только один ярлык, но и группу ярлыков. Это удобно для визуальной группировки — к примеру, можно сгруппировать листы MS Excel по кварталам, проектам или степени важности.

Изменение цвета ярлыков в документе MS Excel

Источник

Adblock
detector

Формулировка задачи:

как создать по средствам VBA процедуру, которая будет при каждом создании нового листа в Excel будет
перекрашивать ярлык созданного листа в случайный цвет?

Код к задаче: «VBA при каждом создании нового листа в Excel окрашивать ярлык»

textual

Private Sub Workbook_NewSheet(ByVal Sh As Object)
    Randomize
    Sh.Tab.ColorIndex = Int((55 * Rnd)) + 3
End Sub

Полезно ли:

15   голосов , оценка 4.200 из 5

Как изменить цвет вкладки листа в зависимости от значения ячейки?

Обычно вы можете легко и быстро изменить цвет вкладки в Excel, но пытались ли вы когда-нибудь изменить цвет вкладки на основе значения ячейки на листе? Если вас интересует эта задача, я расскажу о некоторых кодах для вас, чтобы раскрасить вкладку листа на основе определенного значения ячейки в Excel.

Изменить цвет вкладки одного листа на основе значения ячейки с кодом VBA

Измените несколько вкладок листов на основе значения ячейки с кодом VBA


стрелка синий правый пузырь Изменить цвет вкладки одного листа на основе значения ячейки с кодом VBA

Например, я хочу, чтобы текущий цвет вкладки листа был зеленым, если значением ячейки в A1 является текст «ИСТИНА», цвет вкладки будет красным, если текст в A1 — «ЛОЖЬ», и цвет вкладки будет синим, если значение в ячейке A1 — это любой другой текст, как показано на следующем снимке экрана:

цветной лист документа по значению 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

цветной лист документа по значению 2

Примечание: В приведенном выше коде A1 это ссылка на ячейку, по которой вы хотите раскрасить вкладку, «Правда«,»Ложь»- это текст, который вам нужен, вы можете изменить его по своему усмотрению, и вы можете изменить цвет в коде по своему усмотрению.

3. Затем сохраните и закройте это окно кода, теперь, когда вы вводите текст «True» в ячейку A1, цвет текущей вкладки станет зеленым, а когда вы введете текст «False» в ячейку A1, цвет вкладки станет красным, а если в ячейку A1 ввести другой текст, цвет табуляции автоматически станет синим.


стрелка синий правый пузырь Измените несколько вкладок листов на основе значения ячейки с кодом VBA

Если вам нужно изменить цвет вкладок нескольких листов в зависимости от значения ячейки, вот также код, который может вам помочь, сделайте следующее:

1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно, в открывшемся окне дважды щелкните Эта рабочая тетрадь под 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

цветной лист документа по значению 3

Примечание: В приведенном выше коде A1 и Master — это ячейка и рабочий лист, на основе которых вы хотите раскрасить вкладку, Sheet1, Sheet2, Sheet3 — это листы, на которых вы хотите раскрасить вкладки. КТЭ, KTW, KTO являются значениями ячеек в A1, на основе которых вы хотите раскрасить вкладки, вы можете изменить ссылки и цвета в коде по своему усмотрению.

2. Затем сохраните и закройте это окно кода, теперь, когда вы вводите текст KTE в ячейку A1 основного листа, вкладка Sheet1 будет окрашена в красный цвет, когда вы введете KTO в ячейку A1, Sheet2 будет окрашен в зеленый цвет, а когда вы вводите KTW в ячейку A1, Sheet3 будет окрашен в синий цвет, см. снимок экрана:

цветной лист документа по значению 4


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Понравилась статья? Поделить с друзьями:
  • Excel vba установить автофильтр
  • Excel vba условные операторы
  • Excel vba условное форматирование макросом
  • Excel vba условие значение ячейки
  • Excel vba условие в диапазоне