Помогите решить задачу при помощи макроса. В VBA не силен. Excel 2010.
Задача состоит в следующем:
Нужно закрасить ячейки с данными в таблице, на листе ГРАФИК КР, используя условия из таблицы, на листе КРИТЕРИИ. Т.е., в таблице на листе КРИТЕРИИ есть строка ДВС с наработкой до КР 18000, рядом диапазон от 17900 до 18500, соответственно все ячейки со значениями попадающие в этот диапазон, в таблице на листе ГРАФИК КР, должны за краситься. Соответственно должны использоваться все критерии из таблицы листа КРИТЕРИИ.
Запустите этот макрос. Активным должен быть первый лист:
Код
Sub DVS()
Dim rCell As Range, iMin As Long, iMax As Long, i As Integer
With Sheets("КРИТЕРИИ")
For i = 3 To 30
iMin = .Cells(i, 3).Value
iMax = .Cells(i, 4).Value
For Each rCell In Range("F3:AI14")
If rCell.Value >= iMin Then
If rCell.Value <= iMax Then rCell.Interior.ColorIndex = 6
End If
Next
Next
End With
End Sub
Макрос усложнится, да и цветов "нормальных" не хватит. Вариант: заливаем нужными цветами столбец В на втором листе, а ячейки заливаем именно таким цветом. Но всё равно не очень наглядно: разве запомнить все соответствия?..
Ну вот и разделить на группы цветов, смотрим в таблицу критериев и ищем соответствующие цвету значения. Соответственно перекрывающиеся будут одного цвета. Все равно будет более наглядно, в отличии от одного цвета! Если есть желание написать такой макрос, буду признателен, а так все равно большое вам спасибо за помощь!
Закрасьте несколько ячеек столбца Е на втором листе различными цветами (кроме жёлтого). Если будут найдены нужные ячейки - они будут покрашены в аналогичный цвет, а если они там остались незалитыми то в жёлтый.
Код
Sub DVS()
Dim rCell As Range, iMin As Long, iMax As Long, i As Integer
With Sheets("КРИТЕРИИ")
For i = 3 To 30
iMin = .Cells(i, 3).Value
iMax = .Cells(i, 4).Value
For Each rCell In Range("F3:AI14")
If rCell.Value >= iMin Then
If rCell.Value <= iMax Then
If .Cells(i, 5).Interior.ColorIndex = xlNone Then
rCell.Interior.ColorIndex = 6
Else
rCell.Interior.ColorIndex = .Cells(i, 5).Interior.ColorIndex
End If
End If
End If
Next
Next
End With
End Sub