Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2015, 07:14   #1
marales
Пользователь
 
Регистрация: 12.03.2011
Сообщений: 22
По умолчанию условное форматирование в vba

подскажите пожалуйста код.
нужно проверить через код вба в 1 строке с 1 по 10 ячейки с данными на применено ли на каждую условное форматирование. если да то очистить ее от данных если нет то пропустить.

сама формула условного форматирования =деньнед( b1;2)>5 где b1 ячейка с датой.

мне в основном нужно условие допустим я выделяю программно ячейку 1 и проверяю подверглась ли она условному форматированию если да очищаем от данных если нет ничего не делаю перехожу к следующей ячейки

Вот я скинул может так легче будет.
Смысл: я выбираю месяц - проставляются УФ выходные, нажимая на "кнопку 13" должны очистится все окрашенные выходные от данных, т.е. по УФ
Вложения
Тип файла: rar графиК.rar (34.2 Кб, 9 просмотров)

Последний раз редактировалось marales; 25.09.2015 в 08:58.
marales вне форума Ответить с цитированием
Старый 25.09.2015, 08:42   #2
AleksandrH
Форумчанин
 
Аватар для AleksandrH
 
Регистрация: 15.02.2010
Сообщений: 148
По умолчанию

Код:
Sub KOD()
    Range("A1:A10").SpecialCells(xlCellTypeAllFormatConditions).Select
    Selection.ClearContents
End Sub
WIX-FILTERS. A Filter for every application.
AleksandrH вне форума Ответить с цитированием
Старый 25.09.2015, 08:50   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

AleksandrH
Так очистятся все ячейки с условным форматированием.
Я так понимаю, что автору нужно очистить только те из них, которые удовлетворяют условию форматирования. Хотя слова
Цитата:
...подверглась ли она условному форматированию...
можно понимать по разному.
Если так, то в цикле нужно проверять соответствие значения ячейки с условием форматирования, и при совпадении - очищать.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 25.09.2015, 08:50   #4
marales
Пользователь
 
Регистрация: 12.03.2011
Сообщений: 22
По умолчанию

Цитата:
Сообщение от AleksandrH Посмотреть сообщение
Код:
Sub KOD()
    Range("A1:A10").SpecialCells(xlCellTypeAllFormatConditions).Select
    Selection.ClearContents
End Sub
Я проверил код он у меня все очистил не зависимо от УФ
marales вне форума Ответить с цитированием
Старый 25.09.2015, 09:09   #5
marales
Пользователь
 
Регистрация: 12.03.2011
Сообщений: 22
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
AleksandrH
Если так, то в цикле нужно проверять соответствие значения ячейки с условием форматирования, и при совпадении - очищать.
я вложил файл может поможет понять
marales вне форума Ответить с цитированием
Старый 25.09.2015, 09:31   #6
AleksandrH
Форумчанин
 
Аватар для AleksandrH
 
Регистрация: 15.02.2010
Сообщений: 148
По умолчанию

Код:
Sub KOD()
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    For i = 5 To 42
        For j = 6 To 37
            Debug.Print Cells(4, j).Value
            Debug.Print Weekday(Cells(4, j), 2)
            Debug.Print Cells(i, j).Value
             If Weekday(Cells(4, j), 2) > 5 Then Cells(i, j).Value = ""
        Next j
    Next i
    Application.Calculation = xlCalculationAutomatic  
End Sub
может не надо заморачиваться по УФ а просто очистить ячейки?

можно 1 циклом по столбцах обойтись. Ели выходные - очистить диапазон
Код:
Sub KOD()
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
        For j = 6 To 37
             If Weekday(Cells(4, j), 2) > 5 Then Range(Cells(5, j), Cells(42, j)).ClearContents
        Next j
    Application.Calculation = xlCalculationAutomatic
End Sub
WIX-FILTERS. A Filter for every application.

Последний раз редактировалось AleksandrH; 25.09.2015 в 09:41.
AleksandrH вне форума Ответить с цитированием
Старый 25.09.2015, 09:40   #7
marales
Пользователь
 
Регистрация: 12.03.2011
Сообщений: 22
По умолчанию

Спасибо, то что нужно!
marales вне форума Ответить с цитированием
Старый 25.09.2015, 09:58   #8
marales
Пользователь
 
Регистрация: 12.03.2011
Сообщений: 22
По умолчанию

Цитата:
Сообщение от AleksandrH Посмотреть сообщение
Код:
Sub KOD()
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    For i = 5 To 42
        For j = 6 To 37
            Debug.Print Cells(4, j).Value
            Debug.Print Weekday(Cells(4, j), 2)
            Debug.Print Cells(i, j).Value
             If Weekday(Cells(4, j), 2) > 5 Then Cells(i, j).Value = ""
        Next j
    Next i
    Application.Calculation = xlCalculationAutomatic  
End Sub
может не надо заморачиваться по УФ а просто очистить ячейки?

можно 1 циклом по столбцах обойтись. Ели выходные - очистить диапазон
Код:
Sub KOD()
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
        For j = 6 To 37
             If Weekday(Cells(4, j), 2) > 5 Then Range(Cells(5, j), Cells(42, j)).ClearContents
        Next j
    Application.Calculation = xlCalculationAutomatic
End Sub
Иногда ошибка error 13 type mismatch
marales вне форума Ответить с цитированием
Старый 25.09.2015, 11:33   #9
AleksandrH
Форумчанин
 
Аватар для AleksandrH
 
Регистрация: 15.02.2010
Сообщений: 148
По умолчанию

В каком фрагменте кода? может значение ячеек в дипазоне F4:AJ4 не дата?
WIX-FILTERS. A Filter for every application.
AleksandrH вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Условное форматирование WIC Microsoft Office Excel 4 03.06.2014 12:15
условное форматирование Tessi123 Microsoft Office Excel 2 23.09.2010 14:32
условное форматирование в VBA ShuraFK Microsoft Office Excel 3 14.05.2009 15:55
Условное форматирование средствами VBA Acro Microsoft Office Excel 5 01.12.2008 16:40
Условное форматирование Asu Microsoft Office Excel 2 18.10.2007 10:14