Здравствуйте! Кажется алгоритм представляю, но не могу реализовать уже целый день! На листе в столбике А список значений (повторяться могут любое количество раз, но только подряд) нужно одну группу значений закрасить в , допустим, ЦВЕТ №1, а вторую группу в ЦВЕТ №2, следующую снова в ЦВЕТ №1 и т.д. В файле-примере на листе "Пример" показано как должно быть.
Здравствуйте! Кажется алгоритм представляю, но не могу реализовать уже целый день! На листе в столбике А список значений (повторяться могут любое количество раз, но только подряд) нужно одну группу значений закрасить в , допустим, ЦВЕТ №1, а вторую группу в ЦВЕТ №2, следующую снова в ЦВЕТ №1 и т.д. В файле-примере на листе "Пример" показано как должно быть.ОлеггелО
_Boroda_, такая маленькая табличка только для примера, её размер постоянно изменяется. Если можно применить Ваш вариант для этих условий, покажите, пожалуйста как!
_Boroda_, такая маленькая табличка только для примера, её размер постоянно изменяется. Если можно применить Ваш вариант для этих условий, покажите, пожалуйста как!ОлеггелО
_Boroda_, при увеличении диапазона, кажется, подойдёт. Только нужен способ, как вставить формулу в макрос (он у меня удаляет всё содержимое листа перед своей работой, удаляется и формула).
_Boroda_, при увеличении диапазона, кажется, подойдёт. Только нужен способ, как вставить формулу в макрос (он у меня удаляет всё содержимое листа перед своей работой, удаляется и формула).ОлеггелО
_Boroda_, я записал макрорекордером, но при записи в нём не прописывается значение для УФ в столбике "Применяется к", соответственно вся запись в макросе действует только для одной ячейки.
_Boroda_, я записал макрорекордером, но при записи в нём не прописывается значение для УФ в столбике "Применяется к", соответственно вся запись в макросе действует только для одной ячейки.ОлеггелО
Sub test() With ActiveSheet.UsedRange.FormatConditions .Delete .Add(xlExpression, , "=ЕЧЁТН(СУММ(-($A5:$A$5<>$A$4:$A4)))*($A5<>"""")").Interior.Color = &HFFCCFF .Add(xlExpression, , "=ЕНЕЧЁТ(СУММ(-($A5:$A$5<>$A$4:$A4)))*($A5<>"""")").Interior.Color = &HCCFFFF End With End Sub
[/vba] и перезайти в файл
[vba]
Код
Sub test() With ActiveSheet.UsedRange.FormatConditions .Delete .Add(xlExpression, , "=ЕЧЁТН(СУММ(-($A5:$A$5<>$A$4:$A4)))*($A5<>"""")").Interior.Color = &HFFCCFF .Add(xlExpression, , "=ЕНЕЧЁТ(СУММ(-($A5:$A$5<>$A$4:$A4)))*($A5<>"""")").Interior.Color = &HCCFFFF End With End Sub
KSV, красит только в один цвет! _Boroda_, попробовал, использовать Range("A5:H22") вместо Select'ов в разных комбинациях, но в результате тоже в один цвет красит. Хотя значение для УФ в столбике "Применяется к" появляется! Что-то неправильно сделал!?
KSV, красит только в один цвет! _Boroda_, попробовал, использовать Range("A5:H22") вместо Select'ов в разных комбинациях, но в результате тоже в один цвет красит. Хотя значение для УФ в столбике "Применяется к" появляется! Что-то неправильно сделал!?ОлеггелО
тогда сделайте и приложите файл-пример с вашим макросом (или его частью), чтобы воспроизвести вашу ситуацию, т.к. у меня при последующем открытии файла УФ работает как надо (Excel 2013).
тогда сделайте и приложите файл-пример с вашим макросом (или его частью), чтобы воспроизвести вашу ситуацию, т.к. у меня при последующем открытии файла УФ работает как надо (Excel 2013).KSV
у меня тоже что-то не получается с УФ а если в лоб?: [vba]
Код
Sub ttt() Dim i&, bu As Boolean With Range("A6:C" & Cells(Rows.Count, 1).End(xlUp).Row) .Interior.Color = xlNone For i = 1 To .Rows.Count If .Cells(i, 1) <> .Cells(i - 1, 1) Then bu = Not bu .Rows(i).Interior.ColorIndex = Choose(bu + 2, 43, 35) Next i End With End Sub
[/vba]
у меня тоже что-то не получается с УФ а если в лоб?: [vba]
Код
Sub ttt() Dim i&, bu As Boolean With Range("A6:C" & Cells(Rows.Count, 1).End(xlUp).Row) .Interior.Color = xlNone For i = 1 To .Rows.Count If .Cells(i, 1) <> .Cells(i - 1, 1) Then bu = Not bu .Rows(i).Interior.ColorIndex = Choose(bu + 2, 43, 35) Next i End With End Sub
ОлеггелО, да, видимо, 2010 понимает не все формулы Александра (в 2013 ваш файл работает)
макросом (по сути, это код nilem на событии Worksheet_Change(), чтобы перекрашивались строки, при изменении данных в первом столбце) [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, UsedRange.Columns(1)) Is Nothing Then Exit Sub Dim c&, ColorIndex As Boolean, aColors(): aColors = Array(&HFFCCFF, &HCCFFFF) With UsedRange c = .Columns.Count For Each Target In .Columns(1).Cells If Target <> Target(0) Then ColorIndex = Not ColorIndex Target.Resize(, c).Interior.Color = aColors(-ColorIndex) Next End With End Sub
[/vba]
ОлеггелО, да, видимо, 2010 понимает не все формулы Александра (в 2013 ваш файл работает)
макросом (по сути, это код nilem на событии Worksheet_Change(), чтобы перекрашивались строки, при изменении данных в первом столбце) [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, UsedRange.Columns(1)) Is Nothing Then Exit Sub Dim c&, ColorIndex As Boolean, aColors(): aColors = Array(&HFFCCFF, &HCCFFFF) With UsedRange c = .Columns.Count For Each Target In .Columns(1).Cells If Target <> Target(0) Then ColorIndex = Not ColorIndex Target.Resize(, c).Interior.Color = aColors(-ColorIndex) Next End With End Sub