Страницы: 1
RSS
Преобразование формата чисел условного форматирования в обычное
 
Добрый день!

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

Т.е. есть диапазон с числами, формат которых определяется условным форматированием. Нужно скопировать эти числа в другой диапазон, но так, чтобы их формат определялся обычным форматированием.
 
ssk, условное форматирование предназначено для визуализации данных, а никак не для его(УФ) обработки. Уже писал на форуме - научитесь работать с данными, а не с фантиками - сильно упростите себе жизнь.
Ваше УФ ведь определяется какими-то формулами, признаками? Вот их и обрабатывайте.
Я сам - дурнее всякого примера! ...
 
Условное форматирование в моем случае используется для отображаются данных в итоговой таблице в млн. или тыс. руб. (см. вложенный файл). Вставлять деление на тыс. или млн. в формулы ячеек таблицы менее удобно, т.к. тогда это необходимо будет учитывать во всех ссылках, ссылающихся на эти ячейки.

KuklP, я ведь просил совета не о принципах работы с данными в экселе. Есть конкретная задача и я надеялся, что кто-то из форумчан уже её решал.
 
копировать - вставить - значения
"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
ssk, Вам же уже ответили:
Цитата
Ваше УФ ведь определяется какими-то формулами, признаками? Вот их и обрабатывайте.
 
Цитата
ssk:
KuklP, я ведь просил совета не о принципах работы с данными в экселе. Есть конкретная задача и я надеялся, что кто-то из форумчан уже её решал.
ssk, давайте не будем подменять понятия. Вы конкретно требуете готового решения. Советы Вам ни к чему. Сюда, уважаемый:
http://www.planetaexcel.ru/forum/?PAGE_NAME=list&FID=7
Я сам - дурнее всякого примера! ...
 
z, но в столбце F числа должны выглядеть также как в столбце С, но с обычным форматом (не условным). В F4, например, должно быть 1000, но отображаться как 1 за счет формата числа.

Юрий М, деление на тысячу или млн. не подходит, т.к. это изменит значения, а нужно только формат.

Есть решение для преобразования условного форматирования в обычное (http://www.excel-vba.ru/general/moi-nadstrojki/the_prist_fctoreal-zamena-uslovnogo-formatirovaniya-obychnym/). Но в этом случае не копируется формат чисел. А нужен именно он.
 
KuklP, никто ничего не требует.
 
Цитата
Юрий М, деление на тысячу или млн. не подходит, т.к. это изменит значения, а нужно только формат.
А почему Вы считаете, что УФ нужный формат может присвоить, а макрос нет?
 
Юрий М, догадываюсь, что может, но я не знаю как это сделать.
 
Самый простой способ - включить макрорекордер, назначить ячейке нужный формат, остановить запись и глянуть код ))
 
но в макрорекордере не будет получения данных об условном форматировании ячейки
 
А зачем оно Вам? УФ удаляем, алгоритм (условие) известен - в зависимости от исходных данных (выпадающий список) присваиваем ячейке/диапазону макросом нужный формат.
 
Для этого конкретного случая можно и в ручную формат поменять. Хотелось бы именно преобразование любого формата числа условного форматирования в обычное форматирование.
 
Нашел похожую задачу в сообщении 2008 года Условное форматирование. Судя по тому, что решений не предложено, рискну предположить, что задача нетривиальна.
Изменено: ssk - 23.09.2013 19:47:50
 
Здесь ещё почитайте.
 
Похоже, нашел то, что нужно:
http://www.mrexcel.com/forum/excel-questions/284013-convert-conditional-formatting-into-standard-one.html
И, видимо, нужно будет учесть необходимость перевода кирилических функций в англоязычные, о чем писал The_Prist: Надстройка для суммирования ячеек по цвету заливки или шрифта
 
Да, Юрий М, спасибо, это я тоже посмотрел.
 
Для Вашего примера формулу в УФ можно посмотреть так:
Код
MsgBox ActiveCell.FormatConditions(1).Formula1
 
Спасибо! Если рожу итоговое решение, обязательно отпишусь
 
Я тут вот чего подумал: если к ячейке УЖЕ применено УФ, то очень просто узнать её формат:
Код
MsgBox ActiveCell.NumberFormat
 
Супер! Это именно то, что нужно! Премного благодарен. Я почему-то думал, что формат, заданный условным форматированием, так не добыть.
Изменено: ssk - 23.09.2013 20:59:54
 
А нет, не работает. NumberFormat возвращает формат, заданный обычным форматированием.
 
Я проверял на Вашем файле - работает.
 
Просто в моем файле, обычный формат тоже задан (забыл очистить).  Но собственно ActiveCell.FormatConditions(1).NumberFormat возвращает уже то, что нужно. Как я понял из msdn это работает, начиная с excel 2007
 
И снова мимо) Возвращается формат без отработки условия. Т.е. в макросе в любом случае нужно будет пересчитывать формулу из условия.
 
А в 2003 и не было такой возможности ))
Страницы: 1
Читают тему
Наверх