Добрый день всем, у меня похожая ситуация, которая уже частично описана здесь http://www.planetaexcel.ru/forum.php?thread_id=8934 и здесь http://www.planetaexcel.ru/forum.php?thread_id=5260 У меня след. задачи: 1. Нужно суммировать все залитые ячейки (цвет не имеет значения) 2. Нужно суммировать все не залитые ячейки. 3. Нужно посчитать количество залитых ячеек (цвет тоже не имеет значения), в которых есть буква "Б" к примеру. 4. Нужно посчитать количество не залитых ячеек, в которых есть буква "О" к примеру.
Это связано с тем, что я не знаю каким цветом пользователь будет закрашивать ячейки и поэтому не могу установить образец цвета, как описано в вышеуказанных ссылках.
Надстройку, которая предлагается я встроил в файл, выяснил, что кодовый цвет не залитой ячейки "-4142", попробовал использовать это в критериях разными способами но безуспешно. Без критериев все считается, а с критериями не получается (#ЗНАЧ!). Помогите пожалуйста разобраться.
5. И еще если можно такой вопрос, можно ли написать такой макрос, чтобы в выделенных ячейках ФИО сделать жирным шрифтом а все остальное не жирным. Ячейки объединенные и там есть два разрыва строк.
'Подсчет ячеек по цвету заливки и критерию Function Count_Color(Count_Range As Range, Optional Color_ As Boolean, Optional Criteria) As Long ' Application.Volatile True Dim cell As Range, a On Error Resume Next If Len(Criteria) Then For Each cell In Count_Range If cell = Criteria Then If Color_ Then If cell.Interior.ColorIndex <> xlNone Then Count_Color = Count_Color + 1 Else If cell.Interior.ColorIndex = xlNone Then Count_Color = Count_Color + 1 End If End If Next Else For Each cell In Count_Range If Color_ Then If cell.Interior.ColorIndex <> xlNone Then Count_Color = Count_Color + 1 Else If cell.Interior.ColorIndex = xlNone Then Count_Color = Count_Color + 1 End If Next End If End Function
У Вас есть уже куча готовых решений. Всей доработки - 2 строки. И опять никак! Function Summ_Color(Count_Range As Range, Optional Color_ As Boolean, Optional Criteria) As Double ....... ....... If cell.Interior.ColorIndex <> xlNone Then Summ_Color = Summ_Color + Val(cell.Value) 'Count_Color = Count_Color + 1
Здравствуйте. А можнно спросить? У меня подобная задача. Нужно в одной строке сумировать два вида данных и вывести в джве разных ячейки. Все в одной строке. Я совсем не умею пользоваться Excel. Объясните пожалуйста куда нужно вписать текст функции что бы работала функция?
Привел функцию для подсчета раскрашенных ячеек к такому виду Function Summ_Color(Count_Range As Range, Optional Color_ As Boolean, Optional Criteria) As Double ' Application.Volatile True Dim cell As Range For Each cell In Count_Range If cell.Interior.ColorIndex <> xlNone Then Summ_Color = Summ_Color + Val(cell.Value) Next End Function
Работает, но не отслеживает изменение фона в ячейках диапазона, приходится руками обновлять ячейки с функцией. Что нужно добавить для автоматизации этого процесса?
Изменение фона не вызывает событие. Но можно в событии выделения ячеек отслеживать, не выделили ли эти ячейки - если да, то принудительно после снятия выделения запускать подсчёт по цветам. Как-то так. Но это в пределах одной функции думаю не сделать.