Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail


Оплата за обучение в Kata Academy только после твоего трудоустройства в IT, начни карьеру Middle Java-разработчика


Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2021, 13:32   #1
SergeyKil
Новичок
Джуниор
 
Регистрация: 08.10.2021
Сообщений: 1
По умолчанию Вставить формулу в ячейку при изменении цвета текста

Написал формулу на 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
Какие есть способы, что бы вставить формулу в другую ячейку при изменении цвета
SergeyKil вне форума Ответить с цитированием
Старый 03.12.2021, 11:31   #2
Matyr
Новичок
Джуниор
 
Регистрация: 03.12.2021
Сообщений: 2
По умолчанию

А если через Worksheet_SelectionChange?
Перекрасил, щелкнул Enter и вуаля.
Matyr вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При изменении цвета лабела второй формы оно (лабел)исчезает Illusiony Общие вопросы Delphi 0 12.12.2015 17:47
Тормоза при изменении цвета Delphi S_007 Помощь студентам 2 27.11.2014 17:09
Копирование строки на новый лист при изменении цвета шрифта Dmitriy S Microsoft Office Excel 7 08.04.2014 07:56
Добавление слагаемого в формулу при изменении количества суммируемых файлов ratibor Microsoft Office Excel 8 27.12.2011 17:33
Сброс цвета некоторых слов при изменении стиля текста 3D.KENWOOD Microsoft Office Word 11 23.06.2010 19:42

Реклама для незарегистрированных, регистрация на форуме