Страницы: 1
RSS
Обозначение цвета в формулах
 
Доброго времени суток, Уважаемые Программисты!  
Может кто нибудь знает как обозначить цвет в формулах?    
 
к примеру есть функция =ЕСЛИ(A1= "желтый" ;0;1)  "желтый" - как обозначить этот цвет ?
 
Только-что отвечал на такой вопрос на другом форуме  
Моё предложение: написать свою функцию определения цвета и вызывать её  для проверки
 
знать бы еще как это сделать...)
 
{quote}{login=Lancelot-r}{date=06.11.2012 10:24}{thema=}{post}знать бы еще как это сделать...){/post}{/quote}  
Сидя на месте?.. Однако - http://www.planetaexcel.ru/forum.php?thread_id=8934... ;) -97416-
 
Спасибо, Z...  
я читал эту тему прежде чем создать тему...    
добавил надстройку, воспользовался командой Cell_Color с ссылкой на ячейку с заливкой, пишет ошибка в значении... я все правильно сделал?
 
Не совсем понял, что нужно сделать.  
Распишите более подробней и выложите файл.  
А я Вам напишу UDF
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
мне нужно что бы формула "=если()" производила вычисления в зависимости от заливки ячейки, если есть заливка определенного цвета, то "истина", если нет то "ложь"
 
Ориентируйтесь по номерам  
См.вложение
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
А цвет заливки у Вас определяется ни содержимым ли ячейки? Это не УФ?
 
LightZ, спасибо, все получилось!!! пару месяцев назад сидел ломал голову как это сделать, так и не понял, пришлось отказаться от идее и решать задачу цифрами, захламляя документ... а теперь разобрался и могу все исправить!)  
 
iba2004, спасибо за интерес! нет, это не условное форматирование...ячейки заливают в ручную...
 
Только изменение заливки UDF не отслеживают - нужно или запускать вручную пересчёт, или запускать его макросом например при переходе на другую ячейку.
 
а есть еще какие нибудь варианты решения этой задачи, кроме UDF ? (честно сказать я даже не знаю что это такое, но принцип понял) макрос-выход!!!
 
в теме http://www.planetaexcel.ru/forum.php?thread_id=8934&forumaction=newreply&page_forum=lastpage&allnum_forum=1  
меня интересует функция Cell_Color - для определения числового кода цвета заливки.  
 
но там есть дополнение ко всем функциям данной темы:  
"Если необходимо учесть возможность пересчета функции при изменении данных на листе, то:  
В редакторе VBA в модуле с нужной функцией раскомментируйет строку  
Application.Volatile  
 
Если её нет - допишите, сразу после имени функции  
Function Color_Count(...)  
Application.Volatile  
 
 
Color_Count - приведена в качестве примера."  
 
может кто нибудь подскажет как это сделать? не могу найти модуль с функцией... по любому что то делаю не правильно и не там ищу...
 
Блин... забыл поставить Volatile, сами сможете добавить? т.к с телефона сейчас сижу %)
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
The_Prist, прошу прощения, но я практически не разбираюсь в VBA...  
открыв редактор, нашел свою книгу, развернул, увидел только "Microsoft Excel Objects", там только "лист 1(лист 1)", "лист 2(лист 2)", "лист 3(лист 3)", "Эта книга".  
 
добавил стандартный модуль, записал в нем:  
Function Cell_Color()  
Application.Volatile  
End Function  
сохранил и функция стала писать "ошибка в значении"  
 
может подскажите что нужно было сделать?  
 
 
 
LightZ, еще раз спасибо, но я не понимаю что значит "Volatile"...
 
что то я запутался... какую функцию, какая строка...
 
Вот этот код (ниже) должен находиться у Вас в модуле (см.скриншот).  
После чего, у Вас появится формула "определенная пользователем (UDF)" - findColor.  
 
Function findColor&(rng As Range)  
   Application.Volatile  
   If rng.Cells.Count > 1 Then Exit Function  
       findColor = rng.Interior.ColorIndex  
End Function
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
 
LightZ? Спасибо! я так понимаю, из поста Hugo, что бы эта функция пересчитывалась без ручного пересчета, нужно написать макрос: "автоматический пересчет листа при изменении заливки любой из ячеек этого листа"?
 
разобрался... просто до этого случайно удалил часть функции...    
теперь функция пересчитывает, при изменении цвета ячейки, только после того как активируется любая из ячеек листа!    
интересно...а можно ли сделать так что бы она пересчитывала при изменении цвета ячейки, БЕЗ активации ячеек...?    
дело в том, что в документе в котом это необходимо применить, при защите листа пользователь может только пользоваться выделением ячеек при форматировании (ТОЛЬКО выделять ячейки и изменять заливку), а при этих действиях пересчет не производиться...
 
файл с зашитой листа на скрепке
 
Нет, на изменение заливки Microsoft событие не придумал, тут ничего не сделаешь.  
Про это я и говорил на предыдущей странице.  
Заставляйте их F9 нажимать, если макрос на выделение ячеек не работает (хотя такое событие тоже срабатывает только после ухода с ячейки, а не при изменении цвета - что не совсем правильно, юзер может посчитать старый результат за новый).
Страницы: 1
Читают тему
Наверх