Jump to content
Josemariarcas

F. Condicional según valor de una celda

Recommended Posts

Buenas Tardes amigos de Ayuda Excel. tengo una macros con mas de 60 formatos condicionales de lo que me hace lento la ejecución, se podría agilizar dicha Macro:

Sub COLOREARCELDAS()
' MACRO 3
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False

'  Yo he seleccionado un color para la celda v3, de fondo y otro de letra, cuando yo utilizo ese valor aparece con su color. En la columna w en  celda 3 "w3" pasa lo mismo.  En la "V4" le doy otro color distinto que "V3" y asi sucesivamente  en las lineas "V;W" son del mismo color tanto fondo como letra cambia los colores por lineas conscutivas 4,5,6,7,8,9,...
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
Formula1:="='TURNO BASE'!$V$3"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.Bold = True
.Italic = False
.Color = -16777088
.TintAndShade = 0
End With
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent1
.TintAndShade = 0.399945066682943
End With
Selection.FormatConditions(1).StopIfTrue = False
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
Formula1:="='TURNO BASE'!$W$3"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.Bold = True
.Italic = False
.Color = -16777088
.TintAndShade = 0
End With
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent1
.TintAndShade = 0.399945066682943
End With
Selection.FormatConditions(1).StopIfTrue = False

Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
Formula1:="='TURNO BASE'!$V$4"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.Bold = True
.Italic = False
.Color = -16777088
.TintAndShade = 0
End With
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
Formula1:="='TURNO BASE'!$W$4"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
.Bold = True
.Italic = False
.Color = -16777088
.TintAndShade = 0
End With
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False

' Y asi continuamos hasta "V58";"W58"
Range("A3").Select

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
ActiveSheet.DisplayPageBreaks = True
Application.CutCopyMode = False
End Sub

Mando archivo

saludos

Jose Maria Arcas

LIBRO2.xlsm

Share this post


Link to post
Share on other sites

A ver @Josemariarcas . Si ya tienes el formato condicional de las celdas (una vez que has corrido la macro, estos se quedan guardados) ¿Para qué quieres correr la macro cada vez que hagas cambios? :huh:

Ves haciéndolos y veras que todas las celdas respetan el formato condicional. O es que no he entendido nada :mellow:

Share this post


Link to post
Share on other sites

Buenos días, Haplox tienes razón, pero pasados algunos meses se va quedando el programa mas lento, y hago una limpieza  borrando todas los formatos condicionales y parece ser que vuelve a funcionar mejor, yo necesito saber si esos formatos condicionales se pueden reducir de filas y que sigan su funcionamiento, 

lo mismo me pasa con los formatos condicionales de valor > y > que te pregunto en el LIBRO2, si es como tu me dices pues dejamos el tema como esta y sigo con las macros que tengo.

Saludos

Share this post


Link to post
Share on other sites
Hace 9 minutos , Josemariarcas dijo:

pasados algunos meses se va quedando el programa mas lento

¿Pero es porque vas aumentando el número de registros, o siempre es la misma tabla? Si vas aumentando los registros y ejecutas la macro, pues cuanto más registros más lento.

Igual pasa aunque no haya macros, cuanto más registros, más lento Excel. Peeeeroooo... En tu archivo, en la hoja de los formatos, si miras en:

Inicio-->Formato Condicional-->Administrar Reglas

Y seleccionas todas las reglas de la hoja, verás la cantidad de formatos que tienes, muchos repetidos, otros con referencias a celdas con error, etc, etc.

Seguramente esto te pasa por ir ejecutando la macro, o porque has ido probalndo cosas que después no has borrado.

Te dejo el fichero de prueba. En él he borrado TODOS los formatos condicionales, he ejecutado la macro 1 vez, para guardar los formatos condicionales que funcioanan y necesitas.

A partir de ahora solo deberías introducir datos, ya que los formatos están guardados y respetarán los datos que introduzcas. He dejado las macros por si acaso.:)

Prueba y comenta, aunque si el problema dices que es a largo plazo...

Copia de LIBRO2-2.xlsm

Share this post


Link to post
Share on other sites

Buenas tardes Haplox, gracias por la molestias y por aclarar mis dudas. Me dices que en Inicio-->Formato Condicional-->Administrar Reglas,  borre todas las reglas y ejecute la macro para crear las reglas que yo necesite. Yo ejecuto al principio de la macro un ( Selection.Formatcondicional.delete ) esto me borra a mi las reglas  en el administrador ó solo me borra las reglas en las celdas? si es así hay alguna manera que las borre desde la macro al administrador?.

Un monton de gracias

Saludos

Share this post


Link to post
Share on other sites

@Josemariarcas , si sigues empeñado en usar la macro, podrías tú mismo ir ejecutando la macro paso a paso y ver qué formatos elimina y cuales no.

Tú estás eliminando los formatos de una selección (A1:AP15), y si miras en el administrador de reglas, tienes muchas que no están en ese rango (tú sabrás como lo has hecho :huh:).

Si quieres que te elimine todos los formatos, elimina todo el With/End With y pon:

Sheets("TURNO BASE").Cells.FormatConditions.Delete

 

Share this post


Link to post
Share on other sites

Buenas tardes Haplox, gracias por la molestias y por aclarar mis dudas. Me dices que en Inicio-->Formato Condicional-->Administrar Reglas,  borre todas las reglas y ejecute la macro para crear las reglas que yo necesite. Yo ejecuto al principio de la macro un ( Selection.Formatcondicional.delete ) esto me borra a mi las reglas  en el administrador ó solo me borra las reglas en las celdas? si es así hay alguna manera que las borre desde la macro al administrador?.

Un monton de gracias

Saludos

Share this post


Link to post
Share on other sites

Buenas noches Haplox, con el borrado de Formatos condicionales me va bien, es cierto tengo un monton de Formatos condicionales en la columna 

Hace 18 horas, Haplox dijo:

@Josemariarcas , si sigues empeñado en usar la macro, podrías tú mismo ir ejecutando la macro paso a paso y ver qué formatos elimina y cuales no.

Tú estás eliminando los formatos de una selección (A1:AP15), y si miras en el administrador de reglas, tienes muchas que no están en ese rango (tú sabrás como lo has hecho :huh:).

Si quieres que te elimine todos los formatos, elimina todo el With/End With y pon:

Sheets("TURNO BASE").Cells.FormatConditions.Delete

 

 

Share this post


Link to post
Share on other sites
En 14/2/2018 at 9:24 , Haplox dijo:

A ver @Josemariarcas . Si ya tienes el formato condicional de las celdas (una vez que has corrido la macro, estos se quedan guardados) ¿Para qué quieres correr la macro cada vez que hagas cambios? :huh:

Ves haciéndolos y veras que todas las celdas respetan el formato condicional. O es que no he entendido nada :mellow:

Buenas noches Haplox, perdona la tardancia pero he estado fuera de Lorca he ido a ver a los nietos a Almeria. Tienes razón los formatos permanecen y así actúan, pero como se iban cargando y se hacia lento las Macros por lo que decidí por lo menos una vez al mes ó a la semana se activara en una macro y me limpiara  de (Reglas ) en los Formatos condicionales al borrarme en la hoja los colores de celdas, también me borra las reglas de los contadores y yo vuelvo a realizar todo el proceso. me funciona bien con la formula que me has mandado  Sheets("TURNO BASE").Cells.FormatConditions.Delete y me gusta como me funciona. Yo utilizo un rango y lo limpio con esta Selection.FormatConditions.Delete. Que es la misma pero utilizandola en un rango ¿No?.

Muchas Gracias

Saludos

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.



×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png