Как сделать условное форматирование для одной колонки?
Есть прайс, который я забираю через Power Query из Mysql.
В нем одна колонка - это наши цены, а все остальное - цены конкурентов. Я хочу сделать форматирование зеленым цветом на цене конкурента - если оно меньше чем у меня, и наоборот - красным. Сделал как на скрине - но никак не работает. Нет выделения цветом.
Ответы (2 шт):
Выделить столбцы с ценами конкуретов (C:F). Записать правила форматирования. Так создадутся общие форматы для этих столбцов. Так удобнее - не нужно отслеживать диапазон с данными; при удалении/добавлении строк УФ не дробится на несколько одинаковых форматов.
Формула УФ для цен, которые больше исходных:
=ЕСЛИ(СТРОКА($B1)>1;C1>$B1)
Чтобы не закрашивались пустые ячейки, в формулу для меньших цен можно добавить проверку на наличие цены:
=ЕСЛИ(СТРОКА($B1)>1;ЕСЛИ(C1;C1<$B1))
Пример макроса, который выполняет условие:
Sub Макрос1()
Dim i As Integer
For i = 1 To 100
If Cells(i, 2) > Cells(i, 1) Then
With Workbooks("Книга1.xlsm").Sheets("Лист1").Cells(i, 2).Interior
.PatternColorIndex = xlAutomatic
.Color = 13551615
.TintAndShade = 0
End With
End If
If Cells(i, 2) < Cells(i, 1) Then
With Workbooks("Книга1.xlsm").Sheets("Лист1").Cells(i, 2).Interior
.PatternColorIndex = xlAutomatic
.Color = 13561798
.TintAndShade = 0
End With
End If
If Cells(i, 3) > Cells(i, 1) Then
With Workbooks("Книга1.xlsm").Sheets("Лист1").Cells(i, 3).Interior
.PatternColorIndex = xlAutomatic
.Color = 13551615
.TintAndShade = 0
End With
End If
If Cells(i, 3) < Cells(i, 1) Then
With Workbooks("Книга1.xlsm").Sheets("Лист1").Cells(i, 3).Interior
.PatternColorIndex = xlAutomatic
.Color = 13561798
.TintAndShade = 0
End With
End If
If Cells(i, 4) > Cells(i, 1) Then
With Workbooks("Книга1.xlsm").Sheets("Лист1").Cells(i, 4).Interior
.PatternColorIndex = xlAutomatic
.Color = 13551615
.TintAndShade = 0
End With
End If
If Cells(i, 4) < Cells(i, 1) Then
With Workbooks("Книга1.xlsm").Sheets("Лист1").Cells(i, 4).Interior
.PatternColorIndex = xlAutomatic
.Color = 13561798
.TintAndShade = 0
End With
End If
If Cells(i, 5) > Cells(i, 1) Then
With Workbooks("Книга1.xlsm").Sheets("Лист1").Cells(i, 5).Interior
.PatternColorIndex = xlAutomatic
.Color = 13551615
.TintAndShade = 0
End With
End If
If Cells(i, 5) < Cells(i, 1) Then
With Workbooks("Книга1.xlsm").Sheets("Лист1").Cells(i, 5).Interior
.PatternColorIndex = xlAutomatic
.Color = 13561798
.TintAndShade = 0
End With
End If
If Cells(i, 6) > Cells(i, 1) Then
With Workbooks("Книга1.xlsm").Sheets("Лист1").Cells(i, 6).Interior
.PatternColorIndex = xlAutomatic
.Color = 13551615
.TintAndShade = 0
End With
End If
If Cells(i, 6) < Cells(i, 1) Then
With Workbooks("Книга1.xlsm").Sheets("Лист1").Cells(i, 6).Interior
.PatternColorIndex = xlAutomatic
.Color = 13561798
.TintAndShade = 0
End With
End If
Next i
End Sub
если строк больше 100, то измените значение в цикле For

