powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Заливка ячеек в колонке
12 сообщений из 12, страница 1 из 1
Заливка ячеек в колонке
    #34084491
MrPavlik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача следующая:
В таблице есть колонка n ячеек в которых находятся различные даты.
Нужно сравнить по всей колонке эти даты с текущей, те в которых дата меньше или равна текущей залить цветом, например красным.
...
Рейтинг: 0 / 0
Заливка ячеек в колонке
    #34084514
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Формат->Условное форматирование.
...
Рейтинг: 0 / 0
Заливка ячеек в колонке
    #34084538
MrPavlik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотелось бы все таки макрос.
...
Рейтинг: 0 / 0
Заливка ячеек в колонке
    #34084666
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну так записать макрорекордером???? это практически без изменений:
Код: plaintext
1.
2.
3.
4.
5.
6.
Sub Macro15()
    Columns("A:A").Select
    Selection.FormatConditions.Delete
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLessEqual, _
        Formula1:="=NOW()"
    Selection.FormatConditions( 1 ).Interior.ColorIndex =  3 
End Sub
...
Рейтинг: 0 / 0
Заливка ячеек в колонке
    #34084788
MrPavlik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кол-во ячеек в колонке может быть любым.
Как сделать выборку от заданной до последней ?
...
Рейтинг: 0 / 0
Заливка ячеек в колонке
    #34084797
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrPavlikХотелось бы все таки макрос.Если операция будет производиться от раза к разу, то еще куда ни шло, но если хочешь привязывать код к какому-либо +/- регулярному событию, то имей ввиду, что в отличие от Условного форматирования при использовании кода потеряется возможность отмены/возврата к предыдущим изменениям на листе, а также возможность копировать ячейки.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub Test1()
    On Error Resume Next
    With ActiveSheet
        With Intersect(.[A:A], .UsedRange).FormatConditions
            .Delete
            .Add Type:=xlExpression, Formula1:="=AND(RC<>"""",RC<=TODAY())"
            .Item( 1 ).Interior.ColorIndex =  3 
        End With
    End With
End Sub

или

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Sub test2()
    Dim c As Range, x As Date
    x = Date 'или x = Now
    With ActiveSheet
        For Each c In Intersect(.[A:A], .UsedRange)
            If c <= x Then c.Interior.ColorIndex =  3  Else c.Interior.ColorIndex =  0 
        Next c
    End With
End Sub

Также имей ввиду, что, в обоих случаях, если в ячейке не дата, а дата со временем (если при форматировании ячейки как General, число имеет десятичные разряды), то нужно будет округлять (например до 8 десятичных разрядов, т.е. до миллисекунд), чтобы избежать ошибки связанной с явлением описанным здесь: http://support.microsoft.com/default.aspx/kb/78113/en-us (не знаю русского термина).

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Заливка ячеек в колонке
    #34084818
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первый код лучше даже так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub Test1()
    On Error Resume Next
    With ActiveSheet
        .[A:A].FormatConditions.Delete
        With Intersect(.[A:A], .UsedRange).FormatConditions
            .Add Type:=xlExpression, Formula1:="=AND(RC<>"""",RC<=TODAY())"
            .Item( 1 ).Interior.ColorIndex =  3 
        End With
    End With
End Sub

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Заливка ячеек в колонке
    #34084949
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrPavlikКол-во ячеек в колонке может быть любым.
Как сделать выборку от заданной до последней ?

Например так, как это сделано в моих предыдущих примерах, или так:

Dim rng As Range
With ActiveSheet
Set rng=.Range(.[A2],.[A65536].End(xlUp))
End With

Разница в том, что в первом случае включаются не только непустые ячейки, но и пустые с форматированием, а во втором только непустые ячейки.

Есть еще несколько способов, включая использование метода Find или SpecialCells(xlCellTypeLastCell)

Использование UsedRange и SpecialCells(xlCellTypeLastCell) сопряжено с риском налететь на след. баг:
http://support.microsoft.com/kb/q232094/
http://support.microsoft.com/kb/231007
http://www.contextures.com/xlfaqApp.html#Unused
...
Рейтинг: 0 / 0
Заливка ячеек в колонке
    #34650805
srxp1154
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, Уважаемые.
Не хотел создавать новую тему, эта наиболее всего мне подходит.
Суть та же - в таблице колонка с датами. Если дата в ячейке меньше или равна сегодняшней - заливка красным. Тут меня вполне устраивает Условное форматирование. Но мне надо чтобы если в соседней ячейке поставить букву F (Fixed), то заливка снимается. Нутром понимаю надо использовать двойное условие, но не получается.
Надеюсь поможете.
...
Рейтинг: 0 / 0
Заливка ячеек в колонке
    #34650906
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Формат - условное форматирование - формула
=И(A1<=СЕГОДНЯ();B1<>"F")
...
Рейтинг: 0 / 0
Заливка ячеек в колонке
    #34650933
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadФормат - условное форматирование - формула
=И(A1<=СЕГОДНЯ();B1<>"F")

или так:

=(A1<=СЕГОДНЯ())*(B1<>"F")

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Заливка ячеек в колонке
    #34650947
srxp1154
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо! До столь простого решения я не додумался.
Пытался использовать фукцию If и AND NOT.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Заливка ячеек в колонке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]