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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2019, 15:52   #1
Елена195
Пользователь
 
Регистрация: 21.01.2019
Сообщений: 27
По умолчанию Копирование при условном форматировании

Добрый день!

Есть необходимость скопировать форматы ячеек ( а именно их заливку и формат шрифта) и вставить значениями в другую область.
Проблема заключается в том, что изначально ячейкам придается формат с помощью условного форматирования, и в другую область вставляются просто данные.
Далее в файле с этими форматами работает макрос, и не может определить формат при условном форматировании.

Список присылает подрядчик, и иногда может достигать 100-200 строк, по этому переделывать и задавать форматы руками достаточно муторно и сложно, тем более можно промазать с точным форматированием.

Подскажите пожалуйста, можно ли как-то скопировать форматы без условий условного форматирования?

Пример файла во вложении.

Заранее спасибо.
Вложения
Тип файла: xlsx Пример.xlsx (9.7 Кб, 8 просмотров)
Елена195 вне форума Ответить с цитированием
Старый 15.04.2019, 16:06   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Елена195 Посмотреть сообщение
Подскажите пожалуйста, можно ли как-то скопировать форматы без условий условного форматирования?
по-моему, нельзя.

но, с другой стороны, можно использовать для ваших целей данные из правил условного форматирования.

p.s. ну у Вас и задачки. Это же феерический ужас, а не задачки.
А эта ваша задача как-то связана с вашей прошлой темой "Макрос по цветам" ?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.04.2019, 16:10   #3
Елена195
Пользователь
 
Регистрация: 21.01.2019
Сообщений: 27
По умолчанию

Да.

Задача связана именно с тем макросом... Тот макрос мне так же помогли написать на одном из форумов, и там же писали что он не будет работать при условном форматировании ячеек, и как я поняла макросы не работают с условным форматированием.

Или макросы все же умеют работать с условным форматированием?
Елена195 вне форума Ответить с цитированием
Старый 15.04.2019, 16:15   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Елена195 Посмотреть сообщение
Или макросы все же умеют работать с условным форматированием?
умеют.

но по сути верно - макрос для той таблицы с этой работать не будет.

Просто в Excel ячейка, которая раскрашена через свойства (формат, шрифт, заливка) и ячейка, которая раскрашена через условное форматирование - это совершенно разные ячейки.
Суть в том, что для ячеек, которые раскрашены через условное форматирование - в самих ячейках НЕТ сведения о том, как они выглядят после того, как произошло условное форматирование.
Если ваш макрос получает данные из ячейки (как это было в прошлом файле), то он НЕ "УВИДИТ" результат условного форматирования.

Но ведь в ваших файлах нет условного форматирования (судя про прошлому примеру)? Зачем тогда решать проблему, которой нет?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.04.2019, 16:21   #5
Елена195
Пользователь
 
Регистрация: 21.01.2019
Сообщений: 27
По умолчанию

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

Только я доделала файл по прошлому примеру и решила проверить его работу на отчетах которые присылали раньше, как обнаружилась эта проблема с условным форматированием...

Да, я понимаю, что условное форматирование не содержится в самой ячейке...

Я нашла информацию, о том, как с помощью макроса задать условное форматирование..

А можно ли считать это форматирование с помощью макроса?

Спасибо.
Елена195 вне форума Ответить с цитированием
Старый 15.04.2019, 16:42   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Елена195 Посмотреть сообщение
А можно ли считать это форматирование с помощью макроса?
не совсем.
можно получить список всех правил форматирования для данной ячейки с их формулами, приоритетами и свойствами и далее вручную вычислять, какое из правил сработает.

Код:
Sub GetUDF()
    ' переменные для циклов по ячейкам с условным форматированием
    Dim CC, FF As Range, Rng As Range, valstr$
    Dim Ndx As Long, AC As Long
    Dim FC As FormatCondition
  
            Set Rng = Range("C2")
            For Each CC In Rng
              If CC.FormatConditions.Count > 0 Then
                For Ndx = 1 To Rng.FormatConditions.Count
                    Set FC = CC.FormatConditions(Ndx)
                     и тут проверять 
                        'FC.Type
                        'FC.Formula1
                        'FC.Formula2
                        'FC.Priority
                        'FC.StopIfTrue
                    ну и то, что задано в формате условного форматирования
                        'FC.Font  - это закладка "Шрифт"
                        'FC.Interior - это закладка "Заливка"
                        'FC.Borders - это закладка "Граница"

                    End If
                Next Ndx
              End If
            Next CC
  
End Sub
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.04.2019, 16:57   #7
Елена195
Пользователь
 
Регистрация: 21.01.2019
Сообщений: 27
По умолчанию

Спасибо большое))

Буду пробовать..

Но скорее всего будем общаться с подрядчиком, что бы он так больше не делал..
Елена195 вне форума Ответить с цитированием
Старый 15.04.2019, 22:02   #8
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Цитата:
Сообщение от Елена195 Посмотреть сообщение
можно ли считать это форматирование с помощью макроса?
В 2010+ есть свойство range.displayformat. В более ранних - да, приходится анализировать условия условного форматирования и определять формат.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 15.04.2019, 22:55   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
В 2010+ есть свойство range.displayformat. В более ранних - да, приходится анализировать условия условного форматирования и определять формат.
Супер! Я про это свойство не знал!

Так это же резко решает все проблемы Елены!
Достаточно в том макросе, который у неё уже есть, заменить работу с Range.Font, Range.Interior
на Range.DisplayFormat (Range.DisplayFormat.Font, Range.DisplayFormat.Interior и т.д.)
как макрос будет работать и с обычным "ручным" форматированием и условным форматированием!


Казанский, извините, движок форума не даёт мне поставить Вам очередной большой плюс в репутацию...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задать зависимость выполнения формул от даты в Условном Форматировании KuSerg Microsoft Office Excel 14 08.02.2017 19:20
Как в условном операторе использовать И/ИЛИ? ivan.tiran Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 13.04.2014 18:52
Замена значений в условном форматировании fotos Microsoft Office Excel 2 06.06.2011 01:04
Сравнить 2 отрицательных значения в "Условном Форматировании" olimpus Microsoft Office Excel 2 28.10.2008 07:09