¿Cómo crear un bucle for para aplicar formato condicional?
He creado una condición de formato condicional para el primer conjunto de columnas (C:E)
(ver imagen 3).
Range("C1:E36").Select
Selection. Format Conditions. Add Type:=xlExpression, Formulal:="=$D6=""Sun"""
Selection. Format Conditions (Selection. FormatConditions. Count).SetFirstPriority
with Selection. Format Conditions (1). Interior
.Pattern = xlLightVertical
. PatternColor = 65535
.ColorIndex = xlAutomatic
.PatternTintAndShade = 0
End With
Estoy tratando de crear un bucle for que debería aplicarse a los doce conjuntos, cada uno con 3 columnas (ver imagen 2). Además, debería ejecutarse 3 veces, comenzando en las filas C6, C45,C84
– correspondiente a los tres años que estoy tratando de mostrar (ver imagen 1). Estoy luchando con el bucle for. Y la referencia absoluta relativa en las columnas de $D6
en el formato condicional y cómo hacer que sea $G6, $J6, $D84, $G84
.
Para o = 1 a 3 paso 1
Para I = 1 a 12 paso 1
Rango (.Celdas(6, I * 3), .Celdas (36, I * 3 + 2)).Select
Selección. Formato Condiciones. Añadir Tipo:=xlExpressionFormulal:="=$D6=""Sun"""
Selección. Formato Condiciones (Selección. Formato Condiciones. Conteo). EstablecerPrioridadPrimero
Con Selección. Formato Condiciones (1). Interior
.Pattern = xlLightvertical
.PatternColor = 65535
.ColorIndex = xlAutomatic
.PatternTintAndShade = 0
End With
Siguiente I
Siguiente O
End Sub'
davy.ai
Solución:
Necesita modificar el código para recorrer todos los conjuntos de columnas y aplicar el formato condicional para cada conjunto. Puede usar un contador para llevar un registro de la fila inicial de cada año. Aquí hay un ejemplo de código que debería funcionar:
Este código utiliza una matriz
filasIniciales
para almacenar la fila inicial de cada año. Luego recorre todos los conjuntos de columnas (incrementando de 3 en 3 cada vez), selecciona el rango para el conjunto de columnas actual y aplica el formato condicional con la fórmula y fila inicial correctas.