Formato condicional y VBA

Buenos días a todos, tengo el siguiente problema:
Aplico 2 formatos condicionales a un rango variable, empezando desde R4 hasta el final de la derecha:
Range("R4").Select
Range(Selection, Selection.End(xlToRight)).Select
With Selection
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _
Formula1:=Range("o4")
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
End With
Range(Selection, Selection.End(xlToRight)).Select
With Selection
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
Formula1:=Range("o4")
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 5287936
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
End With
Explico el código aquí: si el rango R4:VARIABLE es menor al valor que tengo en O4 pone de fondo color rojo, y el otro formato condicional es lo mismo pero si es mayor, pone fondo verde. Hasta acá todo bárbaro, el tema es que necesito llevar estos dos formatos condicionales al resto de la planilla, o sea, R5, R6, R7 y así hasta llegar a la ultima celda (que hoy puede ser 1900 y m añana 2600).

Agradeceere cualquier duda y sugerencia.

1 Respuesta

Respuesta
1

Momentáneamente tengo esta solución:
Inicioloop:
While ActiveCell.Value = "fin"
GoTo saltarloop
Wend
ActiveCell.Offset(1, -3).Select
celdaactiv = ActiveCell.Value
ActiveCell.Offset(0, 3).Select
Range(Selection, Selection.End(xlToRight)).Select
With Selection
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _
Formula1:=celdaactiv
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
End With
With Selection
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _
Formula1:=celdaactiv
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 5287936
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
End With
GoTo inicioloop
Saltarloop:

El tema es que debido a la cantidad de datos que tengo, Excel colapsa y deja de funcionar. Deje corriendo esta parte más de 20 minutos y no responde... ¿Alguien podría ayudarme a encontrar una solución más "profesional" o al menos que no colapse excel?

Añade tu respuesta

Haz clic para o