Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Присвоение нового цвета ярлычку листа при выполнении условия - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Присвоение нового цвета ярлычку листа при выполнении условия
kolesnikovfamily2012 Дата: Воскресенье, 21.02.2021, 11:07 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

2019
Уважаемые гуру форума! Столкнулся с проблемой связанной со сложным логическим выражением. Присвоение цвета ярлычку должно происходить если выполнится логическое выражение: ЕСЛИ (А1 не пусто) и (В2 не пусто) и (В3 не пусто) и (С4 не пусто) и (одно из диапазона ячеек Е2:Е7 не пусто) и (одно из диапазона ячеек G2:J2 не пусто) ТО присваивается цвет ИНАЧЕ без цвета. Как в VBA прикрутить логический выбор из диапазона не знаю..Нужна помощь.

Макросы встроены в каждый лист
[vba]
Код
Private Sub Worksheet_Deactivate()
If Range("A1") <> "" And Range("B2") <> "" And Range("B3") <> "" And Range("C4") <> "" Then
ThisWorkbook.Worksheets(1).Tab.Color = RGB(204, 255, 153)
Else
ThisWorkbook.Worksheets(1).Tab.ColorIndex = xlNone
End If
End Sub
[/vba]
К сообщению приложен файл: 0175035.xlsb (17.4 Kb)
 
Ответить
СообщениеУважаемые гуру форума! Столкнулся с проблемой связанной со сложным логическим выражением. Присвоение цвета ярлычку должно происходить если выполнится логическое выражение: ЕСЛИ (А1 не пусто) и (В2 не пусто) и (В3 не пусто) и (С4 не пусто) и (одно из диапазона ячеек Е2:Е7 не пусто) и (одно из диапазона ячеек G2:J2 не пусто) ТО присваивается цвет ИНАЧЕ без цвета. Как в VBA прикрутить логический выбор из диапазона не знаю..Нужна помощь.

Макросы встроены в каждый лист
[vba]
Код
Private Sub Worksheet_Deactivate()
If Range("A1") <> "" And Range("B2") <> "" And Range("B3") <> "" And Range("C4") <> "" Then
ThisWorkbook.Worksheets(1).Tab.Color = RGB(204, 255, 153)
Else
ThisWorkbook.Worksheets(1).Tab.ColorIndex = xlNone
End If
End Sub
[/vba]

Автор - kolesnikovfamily2012
Дата добавления - 21.02.2021 в 11:07
RAN Дата: Воскресенье, 21.02.2021, 11:27 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
А зачем в каждый лист, когда можно один в модуль книги?
[vba]
Код
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    With Sh
        If Len(.Range("A1")) And Len(.Range("B2")) And Len(.Range("B3")) And Len(.Range("C4")) _
           And Application.CountA(.Range("E2:E7")) > 0 And Application.CountA(.Range("G2:J2")) > 0 Then
            .Tab.Color = RGB(204, 255, 153)
        Else
            .Tab.ColorIndex = xlNone
        End If
    End With
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеА зачем в каждый лист, когда можно один в модуль книги?
[vba]
Код
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    With Sh
        If Len(.Range("A1")) And Len(.Range("B2")) And Len(.Range("B3")) And Len(.Range("C4")) _
           And Application.CountA(.Range("E2:E7")) > 0 And Application.CountA(.Range("G2:J2")) > 0 Then
            .Tab.Color = RGB(204, 255, 153)
        Else
            .Tab.ColorIndex = xlNone
        End If
    End With
End Sub
[/vba]

Автор - RAN
Дата добавления - 21.02.2021 в 11:27
kolesnikovfamily2012 Дата: Воскресенье, 21.02.2021, 14:05 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

2019
RAN, да согласен. Ваш код конечно помог. Почему делал на каждый лист - в реальном файле 30 листов и последние 3 листа в случае ИНАЧЕ должны окрашиваться в другой цвет. Думаю конечно что и этот момент можно учесть, но у меня знаний не хватает..
 
Ответить
СообщениеRAN, да согласен. Ваш код конечно помог. Почему делал на каждый лист - в реальном файле 30 листов и последние 3 листа в случае ИНАЧЕ должны окрашиваться в другой цвет. Думаю конечно что и этот момент можно учесть, но у меня знаний не хватает..

Автор - kolesnikovfamily2012
Дата добавления - 21.02.2021 в 14:05
kolesnikovfamily2012 Дата: Воскресенье, 21.02.2021, 14:41 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

2019
В итоге для моей задачи получился такой код к листу (учитывая, что в ячейках А,В,С могут быть как числа так и текст, а в диапазонах только одна из ячеек должна содержать число)

[vba]
Код
Private Sub Worksheet_Deactivate()
If Len(Range("A1")) > 0 And Len(Range("B2")) > 0 And Len(Range("B3")) > 0 And Len(Range("C4")) > 0 _
And Application.Count(Range("E2:E7")) = 1 And Application.Count(Range("G2:J2")) = 1 Then
ThisWorkbook.Worksheets(1).Tab.Color = RGB(204, 255, 153)
Else
ThisWorkbook.Worksheets(1).Tab.Color = xlNone
End If
End Sub
[/vba]


Сообщение отредактировал kolesnikovfamily2012 - Воскресенье, 21.02.2021, 14:53
 
Ответить
СообщениеВ итоге для моей задачи получился такой код к листу (учитывая, что в ячейках А,В,С могут быть как числа так и текст, а в диапазонах только одна из ячеек должна содержать число)

[vba]
Код
Private Sub Worksheet_Deactivate()
If Len(Range("A1")) > 0 And Len(Range("B2")) > 0 And Len(Range("B3")) > 0 And Len(Range("C4")) > 0 _
And Application.Count(Range("E2:E7")) = 1 And Application.Count(Range("G2:J2")) = 1 Then
ThisWorkbook.Worksheets(1).Tab.Color = RGB(204, 255, 153)
Else
ThisWorkbook.Worksheets(1).Tab.Color = xlNone
End If
End Sub
[/vba]

Автор - kolesnikovfamily2012
Дата добавления - 21.02.2021 в 14:41
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!