Jump to content
  • Debido a la crisis sanitaria, hasta el día 31 de marzo, el registro al foro de Ayuda Excel será totalmente gratuito para facilitar el teletrabajo. Todos los registros que se produzcan entre estas fechas tendrán acceso gratuito ilimitado a la comunidad hasta el 30 de abril.

    Regístrate

    Si te surge alguna duda mientras estás trabajando en casa con Excel, ya tienes a quien preguntar.

    Espero que esta medida te sirva de ayuda. Frenar la expansión del coronavirus depende de todos. Sé responsable.

paikerr

DEPURAR CÓDIGO DE FORMATO CONDICIONAL

Recommended Posts

Hola a todxs,

 

Simplemente os quería consultar una cosilla, ¿existe la posibilidad de depurar el siguiente código aun más?

(He utilizado la grabadora de macros, y casi siempre suele ser bastante enreversada en ese sentido. Por eso lo pregunto...)

 

... 
With Range(Cells(5, 20), Cells(5, 20).End(xlDown))
    .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=0"
    .FormatConditions(Range(Cells(5, 20), Cells(5, 20).End(xlDown)).FormatConditions.Count).SetFirstPriority
        With .FormatConditions(1).Font
        ' Fuente de las celdas:
            .Bold = True
            .Color = -16776961
        End With
    .FormatConditions(1).StopIfTrue = False

    .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=1"
    .FormatConditions(Range(Cells(5, 20), Cells(5, 20).End(xlDown)).FormatConditions.Count).SetFirstPriority
        With .FormatConditions(1).Font
        ' Fuente de las celdas:
            .Bold = True
            .Color = -11489280
        End With
    .FormatConditions(1).StopIfTrue = False
End With
...

Gracias de antemano por vuestro tiempo.

Share this post


Link to post
Share on other sites

¡Hola, @paikerr!

Yo lo haría así:

1. Definiría un procedimiento base para los formatos condicionales:

Sub FormCond(rango As Range, formula$, kolor&)
    Dim FC As FormatCondition
    Set FC = rango.FormatConditions.Add(xlCellValue, xlEqual, formula)
    With FC
        With .Font
            .Bold = True: .Color = kolor
        End With
        .StopIfTrue = False
        .SetFirstPriority
    End With
End Sub

2. Desde mi procedimiento principal, llamaría este procedimiento base para ejecutar el Formato Condicional cada que lo necesite:

Sub Procedimiento()
    ' otro código ...

    FormCond Range(Cells(5, 20), Cells(5, 20).End(xlDown)), "=0", -16776961
    FormCond Range(Cells(5, 20), Cells(5, 20).End(xlDown)), "=1", -11489280

    ' otro código ...
End Sub

¡Bendiciones!

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