Страницы: 1
RSS
Вставить формулу в ячейку при изменении цвета текста
 
Написал формулу на VBA - суммирование значений в зависимости от цвета текста
Код
Public Function SumByColor(pRange1 As Range, CodeColor As Double) As Double

Application.Volatile
Dim rng As Range
Dim xTotal As Double
xTotal = 0

For Each rng In pRange1
   If rng.Font.Color = CodeColor Then
       xTotal = xTotal + rng.Value
   End If
Next
SumByColor = xTotal
End Function

Формула работает в момент когда, меняются значения или вставки в ячейку. Значения записаны в 4 столбцах
Попробовал Private Sub Worksheet_Change(ByVal Target As Range) для изменения формулы SumByColor он срабатывает только при изменении значения, а при изменении цвета текста нет

Написал вот такой код, только он работаете через раз
Код
Public Sub TimerProc(ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long)
Static OldSelection As Range
Static OldColorIndex As Long
Static numRow As Long
Static rng As String
If OldSelection = ActiveCell Then
   If OldColorIndex <> Selection.Font.Color Then
       Range("AR" & numRow).Formula = "=SumByColor(" & rng & ";255)"
       Range("AS" & numRow).Formula = "=SumByColor(" & rng & ";0)"
       OldSelection = ActiveCell
       numRow = OldSelection.Row
       rng = "$AI" & numRow & ":AL" & numRow
       OldColorIndex = Selection.Font.Color
   End If
Else
   OldSelection = ActiveCell
   numRow = OldSelection.Row
   rng = "$AI" & numRow & ":AL" & numRow
   OldColorIndex = Selection.Font.Color
End If
End Sub

Какие есть способы, что бы вставить формулу в другую ячейку при изменении цвета?
 
Тут есть вариант, но он не прост, совсем не прост.
По вопросам из тем форума, личку не читаю.
 
И здесь есть варианты.
Страницы: 1
Наверх