Formato condicional-reglas que se multiplican automáticamente
sita1
Mensajes publicados
2
Estado
Miembro
-
max -
max -
Hola,
Tengo una hoja de Excel con un formato condicional en el que seleccioné un rango (toda la columna A) y agregué varias reglas, por ejemplo, texto que contiene A en rojo, texto que contiene B en verde, y así sucesivamente... Sin embargo, cuando copio/pego o inserto una nueva fila, esto me agrega una nueva regla de formato condicional y cambia el rango de la regla ya existente. ¿Cómo evitar esto, ya que si cada vez que agrego una fila se crea una nueva regla, al final tendré 200 reglas y dejará de funcionar...?
Segunda pregunta: ¿es posible tener una especie de leyenda para los formatos condicionales? Es decir, tener celdas de modelo y que una fórmula haga que cada vez que el texto "A" esté en una celda, adopte el formato de la celda de referencia en la leyenda?
Tengo una hoja de Excel con un formato condicional en el que seleccioné un rango (toda la columna A) y agregué varias reglas, por ejemplo, texto que contiene A en rojo, texto que contiene B en verde, y así sucesivamente... Sin embargo, cuando copio/pego o inserto una nueva fila, esto me agrega una nueva regla de formato condicional y cambia el rango de la regla ya existente. ¿Cómo evitar esto, ya que si cada vez que agrego una fila se crea una nueva regla, al final tendré 200 reglas y dejará de funcionar...?
Segunda pregunta: ¿es posible tener una especie de leyenda para los formatos condicionales? Es decir, tener celdas de modelo y que una fórmula haga que cada vez que el texto "A" esté en una celda, adopte el formato de la celda de referencia en la leyenda?
2 respuestas
-
Hola
Una solución: Aplicar el formato condicional no a la zona sino a toda la columna (colocándose sobre la letra de la columna) la fórmula en el gestor de reglas será entonces =$A:$A
una adición de fila no añadirá fórmula
Para las celdas de leyenda se puede proceder de la misma manera:
en otra hoja crear tantas columnas y reglas aplicadas a la columna entera como modelos desees
Para copiar el formato de un modelo colócate sobre el encabezado de columna
toma la herramienta de copiado de formato (el pincel) y regresa a la hoja 1 y haz clic sobre el encabezado de la columna donde aplicar el formato
Atentamente -
¡Muchas gracias por tu respuesta! Lo siento, creo que me expresé mal. En realidad, estoy aplicando el formato condicional a toda la columna y tengo bien $A:$A en el gestor de reglas... pero no funciona. Mientras tanto, me he dado cuenta de que en Excel 2007 bajo XP no hay problema, pero con Excel 2010 se multiplican las fórmulas....
para las celdas de referencia... no lo entendí :-/-
Ok, he probado en 2007 y funciona para las columnas pero no para los rangos
por otro lado, no tengo 2010.
Para las celdas de referencia te decía que hicieras una por columna en otra hoja y que copiaras el formato de esas columnas para aplicarlo en la primera hoja, pero si Excel 2010 multiplica las fórmulas en todos los casos, eso no resolverá tu problema
Seguramente habría que abandonar el MFC y pasar a un formato mediante macro en VBA
Aquí te propongo algo:
En la columna A de la Hoja2 introduces todos tus valores y coloreas cada celda, serán las celdas de referencia
Abres el editor (ALT F11) y seleccionas Hoja1, y en la ventana de la derecha introduces el siguiente código:
Dim c(50) as Integer 'Dimensiona un array de 50 celdas para los colores, a adaptar si es necesario
Sub codigoscolor()
der2 = Sheets("Hoja2").Range("A1").End(xlDown).Row 'última línea vacía columna A Hoja2
For n = 1 To der2
c(n) = Sheets("Hoja2").Range("A" & n).Interior.ColorIndex ' inserta el código de color de cada celda en un array
Next
der1 = Sheets("Hoja1").Range("A1").End(xlDown).Row ' última línea vacía columna A Hoja1
For n = 1 To der1 'bucle sobre las líneas Hoja1
For x = 1 To der2 ' bucle sobre las líneas Hoja2 y si los valores coinciden aplica el color
If Sheets("Hoja1").Range("A" & n).Value = Sheets("Hoja2").Range("A" & x).Value Then MsgBox ("OK"): Sheets("Hoja1").Range("A" & n).Interior.ColorIndex = c(x): Exit For
Next x
Next n
End Sub
Cada vez que llames a la macro, las celdas de la columna A de la Hoja1 serán recoloreadas en función de los modelos de la Hoja2 (que puedes modificar a tu antojo)
Saludos -
-