Страницы: 1
RSS
[ Закрыто ] Изменение цвета ярлыка в зависимости от последней даты в столбце
 
имеется постоянно дополняемый столбец, в который периодически подписывается новая дата. так вот, требуется раскрасить ярлык листа красным цветом, если эта дата уже прошла и зеленым цветом - если эта дата совпадает с сегодняшней. все перерыл, не могу найти что-то похожее.
Изменено: Портунов - 22.08.2019 01:43:03
 
Читайте правила форума. Нужен файл-пример, чтобы можно было начать думать при каком событии проводить проверку даты и закрашивать вкладку листа.
Я не волшебник, я только учусь.
 
В столбец B будет вбиваться дата и вот требуется цветовая раскраска ярлыков
 
См. вариант.
 
Круто. Только вот получается, что если последняя дата сегодняшняя - выделение зеленым, а все остальное - красным. Как теперь дополнить к этому условию, что если последняя дата еще не наступила - закрашивание скажем голубым? Или можно взглянуть на сам макрос?
Изменено: Портунов - 21.08.2019 22:13:21
 
Цитата
Портунов написал:
все остальное - красным.
Это как?
А сам макрос можете посмотреть так: правый клик по ярлычку листа - Исходный текст.
 
Цитата
Юрий М написал:
Это как?
Ярлык красным выделяется когда эта дата не только прошла, но и дата, которая еще не наступила.
А хотелось бы разделить:  Текущая дата - зеленым, прошедшая дата - красным, а дата, которая еще не наступила - синим
 
Так?
 
Да, благодарю
 
Юрий М,
Скажите пожалуйста, а как сделать что бы макрос работал на всех листах, не прописывая его на каждый лист.
Дата вставляется автоматически, используется макрос "Автоматической вставки текущей даты при вводе данных"

Вот ссылка на статью ,макрос и сам пример
https://www.planetaexcel.ru/techniques/6/44/
 
Используйте аналогичное событие, но в модуле книги - Workbook_SheetChange
 
Цитата
Юрий М написал:
в модуле книги - Workbook_SheetChange
Так???
 
Доброго времени суток.
В общем разобрался с
Цитата
Юрий М написал:
Workbook_SheetChange
Скажите пожалуйста, а как сделать что бы при открытии книги макрос проверял есть ли текущая дата на листе и тогда уже менял цвет ярлыка.
например я сегодня открыл книгу, и цвет ярлыка зелёный, а должен быть красный, так как дата стоит вчерашняя, а не сегодняшняя  
 
Цитата
alex_kireev написал:
что бы при открытии книги макрос проверял есть ли текущая дата на листе
На каком листе?
 
Вот пример на 2х листах
Таких листов будет много.
То есть нужна проверка при открывании книги  и если на всех листах старая дата то ярлыки на всех листах красные. А если есть лист с  датой которая совпадает с сегодняшней то цвет ярлыка зелёный.
 
В модуль книги:
Код
Private Sub Workbook_Open()
Dim Sht As Worksheet, LastRow As Long
    For Each Sht In ThisWorkbook.Sheets
        With Sht
            LastRow = .Cells(Rows.Count, 2).End(xlUp).Row
            If LastRow > 2 Then
                If .Cells(LastRow, 2) = Date Then
                    .Tab.Color = vbGreen
                Else
                    .Tab.Color = vbRed
                End If
            End If
        End With
    Next
End Sub
 
Какой смысл красить ярлык по  Workbook_SheetChange? Все равно цвет ярлыка активного листа не видно.
Код
Private Sub Workbook_Open()
    For Each Sh In Me.Worksheets
        Call Tab_Color(Sh)
    Next
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    Call Tab_Color(Sh)
End Sub

Sub Tab_Color(ByVal Sh As Object)
    Dim x As Date
    x = Application.Max(Sh.Range("B:B"))
    If x < Date Then
        Sh.Tab.Color = vbRed
    ElseIf x = Date Then
        Sh.Tab.Color = vbGreen
    Else
        Sh.Tab.Color = vbBlue
    End If
End Sub
 
Доброго времени суток.
Извините, возможно я не правильно описал суть вопроса.
Есть книга в которой 7 листов, несколько раз в день эта книга открывается и дописывается новая дата.
Если при открытии книги на листе дата старая (например вчерашняя) то ярлык листа красный, а если дата соответствует сегодняшней то ярлык листа зелёный.

https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=119958&a...

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

Например если вчера был понедельник и мы поставили дату вчера, то во вторник при открытии этой книги цвет ярлыка у понедельника будет зелёным.
Даты в книге ставятся в зависимости от дня недели
Если сегодня понедельник то дата ставится в листе с именем понедельник
 
Сори не ту книгу прикрепил
 
Вроде макросы есть, а вот куда их положить - не знаю. Цвет ярлычка автоматически не обновляется при открытии файла через один и более дней.
 
Цитата
Портунов написал:
макросы есть, а вот куда их положить - не знаю.
Я же в #16 сказал:
Цитата
Юрий М написал:
В модуль книги
Тема в платном разделе.
Страницы: 1
Наверх