День добрый.(надеюсь тему назвал правильно) Необходим макрос, при выполнение которого происходило изменение цвета ячеек в столбце(B), если значение ячейки > 10, и ещё один макрос, если значение > 20, но < 50 (применение или этого, или этого, в зависимости от условий)
A B Маршрут 1 5 Маршрут 2 15 Маршрут 3 10 Маршрут 4 9 Маршрут 5 7 Маршрут 6 22 Искал в инете, нашёл подобный макрос:
Код
Sub Macro22()
With Columns("b:b").FormatConditions
.Add xlCellValue, xlBetween, "10", "100"
.Item(1).Interior.ColorIndex = 45
End With
End Sub
Но как я понял, это то же условное форматирование, и оно к сожалению не подходит
Private Sub WorkSheet_Change(ByVal Target As Range)
Dim qq As Range, lRow&, aa As Range
lRow = ActiveSheet.UsedRange.Rows.Count + 1
Set qq = Range("B2:B" & lRow)
If Not Intersect(qq, Target) Is Nothing Then
For Each aa In qq
With aa.Interior
Select Case aa.Value
Case 21 To 49: .Color = vbGreen
Case Is > 10: .Color = vbRed
Case Else: .ColorIndex = 0
End Select
End With
Next
End If
End Sub
Если я правильно понял, то в модуль нужного листа поместите код:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim f As Long, q As Range: Application.ScreenUpdating = False
If Intersect(Target, [B:B]) Is Nothing Then Exit Sub
[B:B].Interior.ColorIndex = xlNone
If [условие_1] Then f = 1
If [условие_2] Then f = 2
For Each q In Intersect(ActiveSheet.UsedRange, [B:B])
Select Case f
Case 1
If q > 10 Then q.Interior.ColorIndex = 3
Case 2
If q > 20 And q < 50 Then q.Interior.ColorIndex = 6
End Select
Next
End Sub
Где вместо [условие_1] и [условие_2] пропишите требуемые условия в приоритетном порядке.
Файл прикрепил(пример), необходимы 2 макроса(отдельных друг от друга) 1 макрос, при котором, ячейки столбце B значения которых > 10 ,будут окрашиваться в красный(цвет не важен) 2 макрос, при котором, ячейки столбце B значения которых > 20<50 ,будут окрашиваться в зелёный(цвет не важен). Так же, учитывать то, что в данные в файле будут меняться путём копирования/переноса строк из другого файла(не меняться в ручную, а именно копироваться) Так что условное форматирование не подходит.
koreras написал: 1 макрос, при котором, ячейки столбце B значения которых > 10 ,будут окрашиваться в красный(цвет не важен) 2 макрос, при котором, ячейки столбце B значения которых > 20<50 ,будут окрашиваться в зелёный(цвет не важен).
С другой:
Цитата
koreras написал: будет применяться один из них, в зависимости от условий.
А это уже не два разных макроса, а один. Т.е. для того, чтобы ячейки окрашивались по событию изменения значений, нужно знать эти самые условия, в зависимости от которых макрос должен выбрать, какое из сравнений (> 10, или > 20 и < 50) применять. Проясните ситуацию... И еще: нужно ли, при очередном изменении значений в столбце "B", перед новым окрашиванием, обесцвечивать ранее окрашенные ячейки?
Добрый день. Отвечаю уважаемому SAS888. Необходимо 2 макроса, не два условия в одном, а два раздельных. 1 где просто >10, 2 где >20 и <50. Какой из них будет применяться уже будет решаться по факту(по условиям, или этот, или этот). Обесцвечивание, здесь вам +, не думал про это. предполагалось, что при изменении данных(копирование-вставка), в изначальном варианте заливки нет, и уже при вставке, заливка заливается по условиям макроса.