Подскажите, можно задать какую-либо формулу в УФ, чтобы цвет фона ячеки был взят из значения ячейки? Само значение ячейки - результат вычисления, не записано константой.
или тут без VBA никак не обойтись?
Здравствуйте!
Подскажите, можно задать какую-либо формулу в УФ, чтобы цвет фона ячеки был взят из значения ячейки? Само значение ячейки - результат вычисления, не записано константой.
Sub colorAllCells() For i = 7 To ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row - 1 For j = 3 To ActiveSheet.UsedRange.Columns.Count Step 6 With Cells(i, j) .Interior.Color = RGB(.Offset(0, 1), .Offset(0, 2), .Offset(0, 3)) End With Next j Next i End Sub
[/vba]и на событие change [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Target.Row = 3 Or Target.Row = 5 Then colorAllCells End Sub
[/vba] Наверное можно как-то покультурнее написать...чтобы не весь лист красился, а только нужные столбцы (это я про событие), но мне уже лень
карандаш, так например: [vba]
Код
Sub colorAllCells() For i = 7 To ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row - 1 For j = 3 To ActiveSheet.UsedRange.Columns.Count Step 6 With Cells(i, j) .Interior.Color = RGB(.Offset(0, 1), .Offset(0, 2), .Offset(0, 3)) End With Next j Next i End Sub
[/vba]и на событие change [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Target.Row = 3 Or Target.Row = 5 Then colorAllCells End Sub
[/vba] Наверное можно как-то покультурнее написать...чтобы не весь лист красился, а только нужные столбцы (это я про событие), но мне уже лень Manyasha
в ячейку вводится слово "крась" и она красится по 3-м значениям справа "крась" можно вводить сразу в несколько ячеек (с помощью Контрл Ентер или просто копи-пастом) Красится Условным форматированием. Шрифт красится в тот же цвет, чтобы не видно было. Если в ячейке что-то другое (или ничего), то УФ убивается.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) For i = 1 To Target.Cells.Count With Target(i) .FormatConditions.Delete If .Value = "крась" Then R_ = .Offset(, 1) G_ = .Offset(, 2) B_ = .Offset(, 3) col_ = R_ + G_ * 256 + B_ * 256 * 256 .FormatConditions.Add Type:=xlExpression, Formula1:="=" & col_ With .FormatConditions(1) .Interior.Color = col_ .Font.Color = col_ End With End If End With Next i End Sub
[/vba]
=========== Добавлено Или без УФ, обычной покраской (файл _2). Условия аналогичны.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) For i = 1 To Target.Cells.Count With Target(i) .Interior.Color = -1 .Font.ColorIndex = xlAutomatic If .Value = "крась" Then R_ = .Offset(, 1) G_ = .Offset(, 2) B_ = .Offset(, 3) col_ = R_ + G_ * 256 + B_ * 256 * 256 .Interior.Color = col_ .Font.Color = col_ End If End With Next i End Sub
[/vba]
в ячейку вводится слово "крась" и она красится по 3-м значениям справа "крась" можно вводить сразу в несколько ячеек (с помощью Контрл Ентер или просто копи-пастом) Красится Условным форматированием. Шрифт красится в тот же цвет, чтобы не видно было. Если в ячейке что-то другое (или ничего), то УФ убивается.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) For i = 1 To Target.Cells.Count With Target(i) .FormatConditions.Delete If .Value = "крась" Then R_ = .Offset(, 1) G_ = .Offset(, 2) B_ = .Offset(, 3) col_ = R_ + G_ * 256 + B_ * 256 * 256 .FormatConditions.Add Type:=xlExpression, Formula1:="=" & col_ With .FormatConditions(1) .Interior.Color = col_ .Font.Color = col_ End With End If End With Next i End Sub
[/vba]
=========== Добавлено Или без УФ, обычной покраской (файл _2). Условия аналогичны.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) For i = 1 To Target.Cells.Count With Target(i) .Interior.Color = -1 .Font.ColorIndex = xlAutomatic If .Value = "крась" Then R_ = .Offset(, 1) G_ = .Offset(, 2) B_ = .Offset(, 3) col_ = R_ + G_ * 256 + B_ * 256 * 256 .Interior.Color = col_ .Font.Color = col_ End If End With Next i End Sub
Файл от Manyasha работает - изменение значения в ячейке сразу приводит к изменению цвета ячеек столбца. Удаление нескольких строк (уменьшение "высоты столбца") прошло безболезнено - всё продолжило работать
Файлы от _Boroda_ работали, но надо постоянно заносить в ячейки слово "красить". Кроме этого, попытка удалить нижние десять-двенадцать строк привело к зависанию эксела. Какая из двух предложенных программ - не удалось увидеть, т.к. были открыты все три файла и всё зависло и аварийно завершить пришлось.
Спасибо всем!!! всё работает и можно искать оптимальную палитру
Очень здорово!
Файл от Manyasha работает - изменение значения в ячейке сразу приводит к изменению цвета ячеек столбца. Удаление нескольких строк (уменьшение "высоты столбца") прошло безболезнено - всё продолжило работать
Файлы от _Boroda_ работали, но надо постоянно заносить в ячейки слово "красить". Кроме этого, попытка удалить нижние десять-двенадцать строк привело к зависанию эксела. Какая из двух предложенных программ - не удалось увидеть, т.к. были открыты все три файла и всё зависло и аварийно завершить пришлось.
Спасибо всем!!! всё работает и можно искать оптимальную палитру