Цвет ячейки - как условие. EXEL

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Alex-55
Сообщения: 1
Зарегистрирован: 21 дек 2005, 09:40

На форуме есть вопросы как закрасить ячейку, а вот решение обратной задачи я не нашел ни в форуме, ни в помощи EXELя. Я новичок в данном деле возможно что-то не досмотрел. Можно ли использовать цвет ячеки как условие, например используя формулы вычислить сумму значений в желтых ячеках и из нее вычесть сумму в синих ячейках?
С уважением Александр.
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

Вариант с использованием макроса может быть таким -
объект Interior.ColorIndex "интерьер" вообщем используется...

Код: Выделить всё

Sub Макрос1()
    Dim r1 As Range
    Set r1 = Range("A1:A10")
    
    Dim Summa As Double
    For Each icell In r1
        If icell.Interior.ColorIndex = 36 Then Summa = Summa + icell.Value
    Next

    Range("D5").Value = Summa
    
End Sub
Для определения ColorIndex для определенной ячейки, встаньте на ячейку и выполните макрос ...

Код: Выделить всё

Sub Макрос2()
    MsgBox Selection.Interior.ColorIndex
End Sub
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

Или может удобнее будет импользовать пользовательскую функцию -

$D$5=ЦветЯчейки($A$4)
Public Function ЦветЯчейки(Ячейка As Range)
Application.Volatile True
ЦветЯчейки = Ячейка.Interior.ColorIndex
End Function
Ответить