Страницы: 1
RSS
Работа макроса по подсчету ячеек одинакового цвета., ДОВОДКА ДО УМА
 
Всем привет. Я не силен в макросах, поэтому обращаюсь за помощью к спецам. У меня макрос для подсчета ячеек одинакового цвета.
Код
 Function color_count(my_range As Range, active_color_cell As Range) As Integer
 color_count = 0
 active_color = active_color_cell.Interior.ColorIndex

 For Each cc In my_range.Cells

 If cc.Interior.ColorIndex = active_color Then
 color_count = color_count + 1
 End If

 Next cc
 End Function

Беда в том, что когда я заливаю ячейку вручную, он не считает, а когда автоматом протягиваю, пересчитывает всю зону, и в том числе ячейку, которая залита в ручную. Нигде не найду инфу по решению данного вида нюансов. Используется в подсчете смен рабочих, вышел в смену, закрасил ячейку под датой, не вышел не закрасил.
Поэтому приходится постоянно открывать ячейку с формулой подсчета, и нажимать ENTER для пересчета. Можно было бы и так оставить, но можно пропустить случайно сутки к примеру. Забыл нажать и все. А штат большой.
Как выйди из данной ситуации?
 
Смена цвета заливки, любое другое форматирование НЕ вызывают в Эксе никакого события. Просто смиритесь. Экс не книжка-раскраска, не пазл. Табличный процессор. Так к нему и относитесь.
Я сам - дурнее всякого примера! ...
 
Цитата
petti22 пишет:
Как выйди из данной ситуации?
Ексель прекрасно считает числовые значения.
Вышел в смену - поставил единичку, не вышел не поставил. Для заливки - УФ. Считаем единички, макрос не нужен. Макрос можно сделать для ввода единички по клику на ячейку. Цвет шрифта = равен цвету заливки. Кликнули - единичка с заливкой. Передумали - ещё раз кликнули - снова пусто и нет заливки.
Наверное так
 
Спасибо большое за ответы, не думал что мои познания ХЛ такие поверхностные. По поводу единичек думал конечно, но хочется что б было красивенько )) вот смотришь за окном, плохая погода, серые будни, открыл табличку, а там цвета и краски  :D и настроение твое, улучшилось.
 
petti22, Вы мой пост до конца дочитали? Если сделаете как написано, то настроение улучшится.
 
За окном солнечно, холодно, вторник и до выходных еще ...
Держите, надеюсь Вам это поможет  :)
 
Да, штат то ведь большой!
Поэтому.... та-та-та-танн: новая версия! Добавлена Турбо Заливка

пс  а как будете не полный день считать  :(
 
Ребятки спасибо за помощь, еще даже не пробывал ваши варианты. Тема с единичками просто гениальна! Я делаю таблицу в основном не для себя, а для тех, кто с компом в натяжку. Для них закрас ячеек это подвиг, а если сделать так, что тыкнул на ячейку оно закрасилось, нажал еще раз оно убралось, это просто "ШШШоколад", если правильно все понял. Просто я в макросах дуб дубом. Прога что приведена мной ранее, успешно скопирована с нета. Табель с раскраской проверю завтра. Ибо, надо хоть когда то спать )
Не полный день, обычно штрафом в графе "премии и штрафы". Т.к. зп у всех разная, то сумма вбивается вручну. Соответственно премии и штрафы тоже. Еще раз, спасибо!
Изменено: petti22 - 20.03.2013 00:48:10
 
День добрый, помогите! Для структурного подразделения есть таблица в ней 17 показателей по вертикали  по горизонтали каждому 5 диапазонов.   После того как рассчитан  показатель он проставляется в ячейку где условное форматирование красит ячейку в соответствующий цвет одного из пяти диапазонов. Таким образом в ячейке находится и значение и цвет (формат соответствующего диапазона). Проблема в том, что я не могу вывести средний диапазон в целом для структурного подразделения поскольку 13 показателей идут на уменьшение а 4 на увеличение. Решил что каждому диапазону присвою цифру ЗЕЛЕНЫЙ 1 ЖЕЛТЫЙ 2 и Т,Д, до 5.В итоге должно получится сумма цветов/17. и определяется критерий, Нашёл функцию здесь на форуме но она мои цвета считать не хочет. Может кто поможет.
 
Сколько не пишу - не будьте "малярами" в Эксе, работайте с данными - как горох...
Я сам - дурнее всякого примера! ...
 
Уважаемый kuklp я бы рад без красок но на верху решили, что нужно именно так. Визуализация нужна. Так, что если можете подсказать, какое-нибудь решение то огромное мерси Вам.  
 
Цитата
Авгур написал: не могу вывести средний диапазон в целом для структурного подразделения поскольку 13 показателей идут на уменьшение а 4 на увеличение.
А как бы Вы руками посчитали этот 'средний диапазон'? Какой алгоритм в данном случае? Какой результат ожидаете от макроса? Покажите в файле желаемый результат, вычисленный вручную
Согласие есть продукт при полном непротивлении сторон
 
Спасибо Sanja отпишусь в понедельник дома компа нет тока на работе.  :cry:  
 
Для начала просто словами напишите Как подсчитывается то, что Вам нужно
Согласие есть продукт при полном непротивлении сторон
 
Получается так если ячейка зеленая то диапазон 1, желтая диапазон 2, сиреневая диапазон 3, красная 4, бодровая 5.
Округл(((Сумма зеленых ячеек с диапазоном 1) +((сумма жолтых ячеек)*2)+((сумма сереневых ячеек)*3)+((сумма красных ячеек)*4)+((сумма бордовых ячеек)*5))/17;0)
полученый результат закрасит условное формотирование в ячейке.
естли возможность зделать пользовательскую функцию чтоб можно было менять диапазон послольку я еще и поперек сводить таблицу буду по хозяйствам и в целом.  
 
Похоже не получится подсчитать ячейки одного цвета поскольку у меня переменяно условное форматирование.
Вот нашол на сайте

12.10.2013 13:23:56


Тут все на порядок сложнее. В VBA нет инструментов, позволяющих определить цвет заливки ячейки, если было применено условное форматирование. Единственный способ - это проверять в коде условия, прописанные в условном форматировании, но это можно делать только для простых условий, а если были применены, например, цветовые шкалы - не поможет ничего.  
Изменено: Авгур - 13.05.2017 09:35:22
 
Начиная с версии 2010 такой инструмент появился. Range("A1").DisplayFormat
Согласие есть продукт при полном непротивлении сторон
 
Жаль у меня 2007 версия  :cry:  
 
Авгур, ссылка в сообщении №16 куда ведет?
 
Я так понял что это копилка вроде.
Я чтото не так сделал?
 
Это ссылка на профиль Павлова
Страницы: 1
Наверх