Цвет ярлыка листа excel от значения

 

wertual

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

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

Добрый день!

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

 

Юрий М

Модератор

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

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

 

Nic70y

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

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

Win7 MSO 2013

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

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

  • 800.xls (37 КБ)

 

wertual

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

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

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

 

Юрий М

Модератор

Сообщений: 60588
Регистрация: 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

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

 

Юрий М

Модератор

Сообщений: 60588
Регистрация: 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

 

Юрий М

Модератор

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

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

#9

01.05.2013 01:37:21

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

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

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

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

 

wertual

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

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

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

 

Юрий М

Модератор

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

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

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

 

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

 

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

 

Юрий М

Модератор

Сообщений: 60588
Регистрация: 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 КБ)

Цвет ярлыка менять в какой-то зависимости

BOB

Дата: Вторник, 02.04.2013, 11:50 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 19


Репутация:

0

±

Замечаний:
0% ±


Здравствуйте!

Можно ли в excel сделать чтобы цвет ярлыка менялся в зависимости от цвета нескольких определенных ячеек. Тоесть велась как бы статистика, закрашены красным А5, А8, А10, то ярлык поменял цвет. Цвет ячейки меняется если в ней есть запись.

Сообщение отредактировал BOBВторник, 02.04.2013, 11:52

 

Ответить

Serge_007

Дата: Вторник, 02.04.2013, 11:58 |
Сообщение № 2

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Средствами Excel это сделать невозможно
Насколько я знаю при заливке ячеек не возникает события, следовательно и на VBA будет реализовать трудно


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

BOB

Дата: Вторник, 02.04.2013, 12:00 |
Сообщение № 3

Группа: Пользователи

Ранг: Новичок

Сообщений: 19


Репутация:

0

±

Замечаний:
0% ±


Жаль. Спасибо!

 

Ответить

ikki

Дата: Вторник, 02.04.2013, 12:17 |
Сообщение № 4

Группа: Друзья

Ранг: Старожил

Сообщений: 1906


Репутация:

504

±

Замечаний:
0% ±


Excel 2003, 2010

статистика по разукрашкам — это круто biggrin

как вариант — можно, отказавшись от ручных «разукрашек», отвести на листе определенные ячейки, «отвечающие» за цвет интересующих вас ячеек.
нужно зеленый — поставили туда 1, красный — 2.
можно даже выпадающий список с названиями цветов сделать.
и выбирать в нём.
такой событие отлавляивается на VBA.

а в «нужных» вам ячейках реализовать заливку с помощью УФ, основываясь на выбранные значения в списке цветов…
ну и до цвета ярлычка тоже уже недалеко — по событию Change.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki

 

Ответить

Гость

Дата: Вторник, 02.04.2013, 12:30 |
Сообщение № 5

Цитата (ikki)

статистика по разукрашкам — это круто

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Исследование возможностей игры духовных лиц на бесструнных инструментах…
biggrin

 

Ответить

BOB

Дата: Вторник, 02.04.2013, 12:40 |
Сообщение № 6

Группа: Пользователи

Ранг: Новичок

Сообщений: 19


Репутация:

0

±

Замечаний:
0% ±


Мне надо чтобы в этих ячейках чтото могли писать( ФИО клиента). Я поставил зависимость ячеек, если есть текст, значит она с зеленой прекрашивается в красный- это время, ярлыки это день недели. Если все ячейки со временем заняты я хотел чтобы и этот день- ярлык поменял цвет, тоесть времени свободного в этот день нет.

Сообщение отредактировал BOBВторник, 02.04.2013, 12:41

 

Ответить

Serge_007

Дата: Вторник, 02.04.2013, 13:15 |
Сообщение № 7

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

В модуль листа:
[vba]

Код

Private Sub Worksheet_Change(ByVal Target As Range)
   If Range(«a1») <> «» Then Sheets(«Лист1»).Tab.Color = 255
End Sub

[/vba]
При заполнении ячейки А1 любым значением, цвет ярлыка листа1 станет красным

К сообщению приложен файл:

BOB.xls
(29.0 Kb)


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

BOB

Дата: Вторник, 02.04.2013, 13:23 |
Сообщение № 8

Группа: Пользователи

Ранг: Новичок

Сообщений: 19


Репутация:

0

±

Замечаний:
0% ±


Скачал файл, попробовал ввести данные в А1, никаких изменений. К тому же что писал Сергей работает, ошибку я сам нашол, но немного не так как мне надо.

Сообщение отредактировал BOBВторник, 02.04.2013, 23:48

 

Ответить

BOB

Дата: Вторник, 02.04.2013, 13:36 |
Сообщение № 9

Группа: Пользователи

Ранг: Новичок

Сообщений: 19


Репутация:

0

±

Замечаний:
0% ±


Цитата (Serge_007)

Private Sub Worksheet_Change(ByVal Target As Range)
If Range(«a1») <> «» Then Sheets(«Лист1»).Tab.Color = 255
End Sub

Так же попробовал ввести в свою книгу, только на другую ячейку. Пишет ошибку в строкеIf Range(«С5») <> «» Then(ошибка 1004. А если надо несколько ячеек, то писать «If Range(«a1+а2+а3?») <> «» Then Sheets(«Лист1»).Tab.Color = 255

И здесь для листа1, а что писать для книги?

Сообщение отредактировал BOBВторник, 02.04.2013, 13:44

 

Ответить

Serge_007

Дата: Вторник, 02.04.2013, 13:41 |
Сообщение № 10

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Цитата (BOB)

опробовал ввести данные в А1, никаких изменений

Макросы включите

Цитата (BOB)

писать «If Range(«a1+а2+а3?»)

Нет

Цитата (BOB)

что писать для книги?

А что надо? Вы просили изменения цвета ярлыка листа. У книги нет ярлыка. По крайней мере в Excel smile


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

Формуляр

Дата: Вторник, 02.04.2013, 13:41 |
Сообщение № 11

Группа: Друзья

Ранг: Ветеран

Сообщений: 832


Репутация:

255

±

Замечаний:
0% ±


Excel 2003, 2013

Поменяйте на
[vba]

Код

If Range(«a1») <> «» Then me.Tab.Color = 255

[/vba]


Excel 2003 EN, 2013 EN

 

Ответить

BOB

Дата: Вторник, 02.04.2013, 13:47 |
Сообщение № 12

Группа: Пользователи

Ранг: Новичок

Сообщений: 19


Репутация:

0

±

Замечаний:
0% ±


У меня просто одно и тоже на кождом ярлыке, я думал можно сделать одно правило для всех ярлыков

 

Ответить

Serge_007

Дата: Вторник, 02.04.2013, 13:51 |
Сообщение № 13

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Цитата (BOB)

можно сделать одно правило для всех ярлыков

Можно. Постом выше Формуляр Вам его подсказал


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

BOB

Дата: Вторник, 02.04.2013, 14:17 |
Сообщение № 14

Группа: Пользователи

Ранг: Новичок

Сообщений: 19


Репутация:

0

±

Замечаний:
0% ±


Все равно пишет ошибку и выделяет желтым цветом «If Range(«С5″) <> » » Then». Ошибка 1004 (Макросы включены.)

Сообщение отредактировал BOBВторник, 02.04.2013, 14:18

 

Ответить

Serge_007

Дата: Вторник, 02.04.2013, 14:28 |
Сообщение № 15

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

Откуда Вы взяли Range(«С5») и почему вместо пустой строки пробел?
Файл с ошибкой давайте


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

RAN

Дата: Вторник, 02.04.2013, 14:38 |
Сообщение № 16

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

И зачем тебе файл?
Все равно ячейки С5 там не будет. Будет C5. smile

BOB, следите за раскладкой.


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RANВторник, 02.04.2013, 14:40

 

Ответить

BOB

Дата: Вторник, 02.04.2013, 14:47 |
Сообщение № 17

Группа: Пользователи

Ранг: Новичок

Сообщений: 19


Репутация:

0

±

Замечаний:
0% ±


[vba]

Код

Private Sub Worksheet_Change(ByVal Target As Range)
If Range(«c5») <> «» Then Sheets(«Лист1»).Tab.Color = 255
End Sub

[/vba]

Я скопировал то что дали Вы здесь на сайте и заменил на оду из нужных мне ячеек.

Мне надо чтобы 42 ячейки были красные чтобы поменялся цвет ярлыка

ввожу английскими буквами.

[admin]Оформляйте коды тегами![/admin]

Сообщение отредактировал BOBВторник, 02.04.2013, 14:52

 

Ответить

BOB

Дата: Вторник, 02.04.2013, 15:08 |
Сообщение № 18

Группа: Пользователи

Ранг: Новичок

Сообщений: 19


Репутация:

0

±

Замечаний:
0% ±


Цвет меняет, но при удалении надписи, цвет остался красным. У меня был «лист1» назван «Понедельник». Поменял на понедельник и стал менять цвет. Но не обратимо.

Опять же всего одна ячейка, а мне надо 42 ячейки, тогда цвет меняется.

Сообщение отредактировал BOBВторник, 02.04.2013, 15:33

 

Ответить

ShAM

Дата: Вторник, 02.04.2013, 22:59 |
Сообщение № 19

Группа: Друзья

Ранг: Старожил

Сообщений: 1347


Репутация:

249

±

Замечаний:
0% ±


Excel 2010

ВОВ, все пошли искать Ваши 42 ячейки.

Сообщение от Serge_007 в 14:28

Цитата

Файл с ошибкой давайте

 

Ответить

BOB

Дата: Вторник, 02.04.2013, 23:32 |
Сообщение № 20

Группа: Пользователи

Ранг: Новичок

Сообщений: 19


Репутация:

0

±

Замечаний:
0% ±


Я просто не понял какой файл, если всю книгу. Но тут ниже написано что файлы хlsx выкладывать не желательно.

 

Ответить

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

Обычно вы можете легко и быстро изменить цвет вкладки в 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% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

0 / 0 / 0

Регистрация: 23.09.2011

Сообщений: 61

1

Как автоматически выделить красным ярлычок листа в книге

22.01.2013, 02:29. Показов 4685. Ответов 14


Студворк — интернет-сервис помощи студентам

Вот такая проблема.. Есть книга — в ней 140 листов таблиц с финданными (все заполнены однотипными таблицами).. некоторые в зависимости от задания заполняются, некоторые пустые.. Как можно средствами Экселя (2003) или с помощью макроса сделать так,чтобы например автоматически выделялся ярлычок листа красным цветом, если , допустим, ячейка A1 в листе содержит цифровую или текстовую информацию ? Как это можно сделать ?



0



Vlad999

3827 / 2254 / 751

Регистрация: 02.11.2012

Сообщений: 5,932

22.01.2013, 10:18

2

для одного листа

Visual Basic
1
2
3
4
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Range("A1"), Target) Is Nothing Then Exit Sub
If [A1] > "" Then Worksheets("Лист1").Tab.Color = 255
 End Sub

в модуль Лист1
если пройтись по всем листам, проверить, закрасить — то здесь моих знаний VBA маловато. :-(
данный код можно вставить во все листы изменяя Лист1 на нужное название. Но лучше подождите появятся знатоки VBA напишут код сразу ля всех листов.



1



0 / 0 / 0

Регистрация: 23.09.2011

Сообщений: 61

22.01.2013, 10:25

 [ТС]

3

Спасибо, Но нужно как раз для всех листов



0



Казанский

15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

22.01.2013, 10:28

4

Цитата
Сообщение от Vlad999
Посмотреть сообщение

данный код можно вставить во все листы…

Не надо, можно вставить в модуль книги

Visual Basic
1
2
3
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'...
End Sub

Но нужно ли вызывать эту процедуру при любом изменении в книге?
Может, лучше иметь в Personal макрос, который пробежит по листам текущей книги и установит цвет ярлычка?
И вызывать его по необходимости или перед сохранением книги (Sub Workbook_BeforeSave).



1



3827 / 2254 / 751

Регистрация: 02.11.2012

Сообщений: 5,932

22.01.2013, 10:56

5

Не надо, можно вставить в модуль книги

Казанский а разве в 3 строка данного мной кода не нужно ничего менять? Имею ввиду
Worksheets(«Лист1«)
согласен что лучше код запускать вручную а не по проверке изменения на листе.



1



0 / 0 / 0

Регистрация: 23.09.2011

Сообщений: 61

22.01.2013, 11:06

 [ТС]

6

Да наверное с «Лист1» что надо делать.. просто с Sub Workbook_BeforeSave макрос не запускается..У меня 2003 ЭКсель !



0



Vlad999

3827 / 2254 / 751

Регистрация: 02.11.2012

Сообщений: 5,932

22.01.2013, 12:29

7

код на кнопку

Visual Basic
1
2
3
4
5
6
7
8
Sub заливка()
    Application.ScreenUpdating = False
For i = 1 To Sheets.Count
    Sheets(i).Activate
    If [A1] <> "" Then ActiveWorkbook.Sheets(i).Tab.Color = 255
Next
Application.ScreenUpdating = True
End Sub

Добавлено через 14 минут
хотя я так думаю нужно ещё добавить очистку если данные из А исчезли.



1



Казанский

15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

22.01.2013, 12:45

8

Цитата
Сообщение от Vlad999
Посмотреть сообщение

а разве в 3 строка данного мной кода не нужно ничего менять? Имею ввиду
Worksheets(«Лист1»)

Конечно, надо.

Visual Basic
1
2
3
4
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Not Intersect(Sh.Range("A1"), Target) Is Nothing Then _
    Sh.Tab.ColorIndex = IIf(Sh.Range("A1") = "", xlColorIndexNone, 3)
End Sub



1



0 / 0 / 0

Регистрация: 23.09.2011

Сообщений: 61

24.01.2013, 01:17

 [ТС]

9

Цитата
Сообщение от Vlad999
Посмотреть сообщение

Добавлено через 14 минут
хотя я так думаю нужно ещё добавить очистку если данные из А исчезли.

Да, тоже было бы неплохо иметь.. Типа если данные в ячейке (A1) исчезают, то ярлычок становится снова белым.. Если можно пришлите пример в экселевском файле на 2003 версию Excel.. что-то не запускается у меня макрос..



0



3827 / 2254 / 751

Регистрация: 02.11.2012

Сообщений: 5,932

24.01.2013, 09:21

10

вставил код от Казанский



1



0 / 0 / 0

Регистрация: 23.09.2011

Сообщений: 61

25.01.2013, 10:05

 [ТС]

11

а как собственно говоря сам макрос в excel 2003 перенести..Я делаю так — кликаю правой кнопкой мыши на ярлычке затем сохраняю через экспорт в нужном файле, меняя номер ячейки, но он что-то отказывается работать.. может что-то не так делаю ? Спасибо большое..



0



3827 / 2254 / 751

Регистрация: 02.11.2012

Сообщений: 5,932

25.01.2013, 10:25

12

Alt+F11 в окне слева находите ваш файл (если окна нет жмем Ctrl+R) а в нем «Эта книга» двойной клик — откроется код для книги. Выделяем копируем переходим в другую книгу там же слева открываем у него «Эта книга» вставляем.



1



0 / 0 / 0

Регистрация: 23.09.2011

Сообщений: 61

25.01.2013, 11:02

 [ТС]

13

Да. Все работает замечательно.. спасибо большое..а предыдущий пример не получается сделать ? , т.е. с одним макросом на 4 столбца на всю книгу с добавлением в диапазоны (4 диапазона) новых текстов.. или как можно сделать 4 отдельных макроса ?



0



3827 / 2254 / 751

Регистрация: 02.11.2012

Сообщений: 5,932

25.01.2013, 11:08

14

Там я пас — моих знаний VBA недостаточно.



1



0 / 0 / 0

Регистрация: 23.09.2011

Сообщений: 61

25.01.2013, 13:14

 [ТС]

15

Цитата
Сообщение от Vlad999
Посмотреть сообщение

Там я пас — моих знаний VBA недостаточно.

А Казанский может помочь ?



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

25.01.2013, 13:14

Помогаю со студенческими работами здесь

Сохранение текущего листа с сохранением имени листа и присвоением новой книге имени текущего листа
Sub Save_as()
With Application.FileDialog(msoFileDialogSaveAs)
.InitialFileName =…

Как перенести данные с одного листа на другой в одной книге
Ребята, подскажите , пожалуйста, как перенести данные с одного листа на другой в одной книге,…

Тестер. Как выделить правильные ответы зелёным, а не правильные красным?
Здравствуйте программисты!! у меня такая проблема. Как можно сделать в режиме обучения:
1. Чтобы…

Как задать условие проверки того, что вводимое название листа уже есть в этой книге? (Да-да, я не шучу)
Простецкую лабу по VBA нужно усложнить тем, чтобы в случае того, что при создании листа расчета и…

Как в Excel создать правило, чтобы данные автоматически с одного листа на другой
Здравствуйте, подскажите пожалуйста, как прописать формулу?
в лист: &quot;Результаты&quot; постепенно…

Выделить прошедшую дату красным
Пожалуйста подскажите формулу для Условного форматирования

Задача: в приложенном файле надо…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

15

Excel для Microsoft 365 Excel для Интернета Excel 2021 Excel 2019 Excel 2016 Excel 2013 Еще…Меньше

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

Чтобы изменить цвет ярлычка листа, щелкните правой кнопкой мыши ярлычок, наведите указатель мыши на пункт Цвет ярлычка и выберите нужный цвет.

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

Совет: Чтобы посмотреть, как будет выглядеть новый цвет ярлычка, щелкните область вне отформатированного ярлычка.

Чтобы удалить цвет, щелкните правой кнопкой мыши ярлычок, наведите указатель мыши на пункт Цвет ярлычка и выберите значение Нет цвета.

Нужна дополнительная помощь?

Понравилась статья? Поделить с друзьями:
  • Цвет страницы в word по умолчанию
  • Цвет по коду word
  • Цвет шрифта ячейки excel от значения
  • Цвет оформления в excel
  • Цвет символов в excel