Страницы: 1
RSS
Суммирование залитых ячеек (цвет не имеет значения)
 
Добрый день всем, у меня похожая ситуация, которая уже частично описана здесь 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  
 
Работает, но не отслеживает изменение фона в ячейках диапазона, приходится руками обновлять ячейки с функцией. Что нужно добавить для автоматизации этого процесса?
 
Изменение фона не вызывает событие.  
Но можно в событии выделения ячеек отслеживать, не выделили ли эти ячейки - если да, то принудительно после снятия выделения запускать подсчёт по цветам.  
Как-то так.  
Но это в пределах одной функции думаю не сделать.
Страницы: 1
Читают тему
Наверх