Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Как закрасить название листа?
 
Добрый день,
подскажите пожалуйста как сделать так чтобы при заполнении ячейки J1 в листе (там вводится фамилия в формате Иванов И.А.) присваивался бы цвет поля где название листа(внизу книги где есть ряд листов с названиями листов, название листа при заполнении ячейки получается на красном фоне)
 
В модуль книги:
Код
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Address = "$J$1" Then
     ActiveWorkbook.ActiveSheet.Tab.Color = 255
End If
End Sub

(без проверки на формат фамилии.)
 
воткнул в "исходный текст" листа (только это не удобно если в каждый лист вносить текст макроса, т.к. у меня 110 листов в исходном файле)
но все равно, не работает. Заношу фамилию, сохраняю и цвет названия листа не меняется. (если пароль защиты листа понадобится - 1239)
 
А вам сказали занести код не в модуль листа, а в модуль КНИГИ. Поставьте и все заработает.
И все удобно будет. Вставив код в модуль книги он автоматически распространяет свое действие на все листы книги.
С уважением,
Федор/Все_просто
 
Цитата
gogy913 написал: воткнул в "исходный текст" листа
а я пишу
Цитата
В модуль книги
немного разные модули....
 
Михаил С., спасибо большое, все заработало! :D
Изменено: gogy913 - 13 Мар 2015 13:14:30
 
Извиняюсь, мне нужно то же самое, но только на одном листе. Пробовал и так и этак менять, не получается. При вставке кода в модуль любого листа работает на всей книге. При чем ярлычок листа остается закрашенным даже при удалении данных их этой ячейки. Подскажите пожалуйста?
Изменено: Sergeyyyyyy - 24 Июн 2015 16:36:55
 
Лучше, конечно, бы с проверкой на заполнение ячейки J, а если пусто другой (старый цвет), а то в обратную сторону не работает.
 
Цитата
Sergeyyyyyy написал: Извиняюсь, мне нужно то же самое, но только на одном листе
Это как? Если условия срабатывания меняются - то это не тоже самое. :)
Что конкретно нужно? :)
Кому решение нужно - тот пример и рисует.
 
Если в код вставить else и цвет присвоить бесцветный, то заработает? Подскажите код бесцвета?

Цитата
Пытливый написал: Что конкретно нужно?
Нужно при наличии условия закрашивать ярлык листа в какой-то цвет, а при удалении этого условия сбрасывать цвет ярлыка. Но достаточно на одном листе делать.
 
можно в модуль листа:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count = 1 And Not Intersect(Target, Range("A1")) Is Nothing And Target.Value > 2 Then
        ActiveSheet.Tab.Color = 255
    Else
        ActiveSheet.Tab.ColorIndex = xlNone
    End If
End Sub

Если в ячейке А1 листа значение больше 2, то красим ярлык красным, иначе - снимаем боевой раскрас! :)
Кому решение нужно - тот пример и рисует.
 
В модуль нужного ЛИСТА
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$J$1" Then
    If Target.Value = Empty Then
        Me.Tab.Color = xlAutomatic
    Else
        Me.Tab.Color = 255
    End If
End If
End Sub
Согласие есть продукт при полном непротивлении сторон.
 
Огромное спасибо, работает.
Страницы: 1
Читают тему (гостей: 1)