Robin pregunta si hay alguna forma de utilizar las capacidades de formato condicional de Excel para cambiar la fuente utilizada en una celda o para cambiar el tamaño de fuente en una celda. La respuesta corta es no, eso no se puede hacer, al menos no con formato condicional. (Los controles que le permiten especificar el nombre y el tamaño de la fuente están atenuados en el cuadro de diálogo de formato que se usa con el formato condicional).

Sin embargo, puede utilizar una macro para examinar el contenido de la celda y realizar cambios en la apariencia de una celda. Considere la siguiente macro que examina las celdas que ha seleccionado cuando ejecuta la macro. Si alguna de las celdas tiene una longitud de más de dos caracteres o un valor de más de 10, se cambia la fuente de la celda.

Sub DoReformat()

Dim rCell As Range

For Each rCell In Selection.Cells         If Len(rCell.Text) > 2 Or _           Val(rCell.Value) > 10 Then             rCell.Font.Name = "Arial"

rCell.Font.Size = 16         Else             rCell.Font.Name = "Times New Roman"

rCell.Font.Size = 12         End If     Next End Sub

Para usar la macro, simplemente seleccione las celdas que desea cambiar y luego ejecute la macro. Si desea que el formato cambie de forma más automática, puede hacer que la macro verifique si se realizó un cambio dentro de un cierto rango de celdas:

Private Sub Worksheet_Calculate()

Dim rng As Range     Dim rCell As Range

Set rng = Range("A1:A10")



For Each rCell In rng         If Len(rCell.Text) > 2 Or _           Val(rCell.Value) > 10 Then             rCell.Font.Name = "Arial"

rCell.Font.Size = 16         Else             rCell.Font.Name = "Times New Roman"

rCell.Font.Size = 12         End If     Next End Sub

Esta macro, cuando se agrega al objeto de la hoja de trabajo, se ejecutará cada vez que se vuelva a calcular la hoja de trabajo. Comprueba el rango A1: A10, aplicando las mismas pruebas que en la macro anterior. El resultado es que el formato de las celdas se comprueba y cambia continuamente. Para que la macro verifique un rango diferente, simplemente cambie las direcciones asignadas a la variable rng cerca del comienzo de la macro.

Un inconveniente de esta macro es que puede volverse lenta si tiene un rango muy grande para verificar. Se ejecutará muy rápidamente si está verificando A1: A10 (diez celdas), pero puede ir mucho más lento si está verificando continuamente B2: N465 (más de 6,000 celdas). En ese caso, es posible que desee diseñar la macro para que se ejecute siempre que se cambie la hoja de trabajo, pero solo tome medidas si el cambio se realizó en una celda en su rango objetivo. La siguiente versión también se agrega al objeto de la hoja de trabajo:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rCell As Range

If Union(Target, Range("A1:A10")).Address = _       Range("A1:A10").Address Then         Application.EnableEvents = False         For Each rCell In Target             If Len(rCell.Text) > 2 Or _               Val(rCell.Value) > 10 Then                 rCell.Font.Name = "Arial"

rCell.Font.Size = 16             Else                 rCell.Font.Name = "Times New Roman"

rCell.Font.Size = 12             End If         Next         Application.EnableEvents = True     End If End Sub

La macro usa la función Unión para verificar si las celdas cambiadas (pasadas al controlador de eventos en la variable Destino) se superponen con el rango que desea verificar. Si es así, la verificación se realiza en las celdas del rango objetivo.

Una cosa a tener en cuenta con las macros que afectan el formato es que si tiene un formato condicional aplicado a una celda que también está verificada por una macro, el formato en el formato condicional tiene prioridad sobre el formato en la macro. Si su macro cambia el nombre de la fuente y el tamaño de la fuente, esto no es una gran preocupación porque el formato condicional no afectará estos atributos. Sin embargo, si cambia su macro para cambiar también un atributo de formato diferente, como el color de celda, y ese atributo también se cambia por el formato condicional, entonces no parecerá que la macro hizo nada porque Excel usa el formato condicional de preferencia. a lo que hace la macro.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (13236) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365. Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:

link: / excel-Changing_Font_Face_and_Size_Conditionally [Cambiando la fuente y el tamaño condicionalmente].