En una hoja de trabajo, Carol tiene una celda con el formato «Contabilidad». Si alguien ingresa accidentalmente una fecha (mm / dd / aa) en esa celda, Excel cambia automáticamente el formato de la celda para mostrar la fecha correctamente. Sin embargo, si intenta ingresar una cantidad en dólares nuevamente en esa celda, no volverá al formato «Contabilidad»; la celda permanece en el formato de fecha.

Esto está bien si el usuario ve el error y lo corrige, pero muchas veces esto sucede en una plantilla con texto «repetitivo» y la plantilla está protegida sin acceso a las celdas de formato. Carol se pregunta si alguien tiene alguna idea sobre por qué sucede esto y cómo corregirlo.

Si desea una forma rápida de evitar el cambio de formato en hojas de trabajo simples, siga estos pasos:

  1. Muestra el cuadro de diálogo Opciones de Excel. (En Excel 2007, haga clic en el botón Office y luego en Opciones de Excel. En Excel 2010 o una versión posterior, muestre la pestaña Archivo de la cinta y luego haga clic en Opciones).

  2. En el lado izquierdo del cuadro de diálogo, haga clic en Avanzado.

  3. Desplácese hasta el final de las opciones avanzadas. (Ver figura 1)

  4. Asegúrese de que la opción Entrada de fórmula de transición esté seleccionada.

  5. Haga clic en Aceptar.

Esta opción en particular hace que Excel evalúe (analice) la información ingresada de la misma manera que lo hizo Lotus 1-2-3. Esto significa que las fechas ya no se analizan como fechas, sino como una fórmula. Por lo tanto, si alguien ingresa 11-16-13 en una celda, entonces se analiza como «once menos dieciséis menos trece» y se muestra en la celda como -18. Debido a que no se analizó como una fecha, el formato de contabilidad se deja asociado con la celda, según se desee.

Sin embargo, hay inconvenientes en este enfoque. Debido a que Excel posteriormente analiza las entradas de acuerdo con las reglas de Lotus, sus usuarios pueden concluir que su hoja de trabajo no funciona correctamente ya que no sigue las mismas reglas que otras hojas de trabajo de Excel. Por eso mencioné que este enfoque puede ser aceptable para hojas de trabajo simples; deberá tomar la determinación si su hoja de trabajo califica.

Si no desea cambiar la forma en que se realiza el análisis, el mejor enfoque puede ser agregar algunos controladores de eventos a su hoja de trabajo. Por ejemplo, podría incluir un controlador de eventos que observe dónde se ingresaron los datos y se asegura de que cualquier cambio en esas celdas conserve el formato deseado.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rngToCheck As Range     Set rngToCheck = Range("E2")

If Intersect(Target, rngToCheck) Then         rngToCheck.NumberFormat = _           "_($ #,##0.00_);_($ (#,##0.00);_($* "" - ""??_);_(@_)"

End If End Sub

En este ejemplo, la celda en la que desea conservar el formato de contabilidad es E2, según lo asignado a la variable rngToCheck. Si desea forzar el formato en un rango de celdas diferente, simplemente cambie la línea de asignación.

Si desea un poco más de flexibilidad, puede utilizar un conjunto diferente de controladores de eventos. Por ejemplo, los siguientes ejemplos usan los eventos SelectionChange y Change del objeto Worksheet. Resultan en algo que no fuerza tanto un formato en particular, pero evita que el formato de una celda se cambie de lo que era antes. Por lo tanto, este enfoque protege cualquier formato, no solo la aplicación de un formato de contabilidad.

Dim nFormat As String

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rngToCheck As Range     Set rngToCheck = Range("E2")

If Intersect(Target, rngToCheck) Then         rngToCheck.NumberFormat = nFormat     End If End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

nFormat = Target.NumberFormat End Sub

El controlador de eventos SelectionChange se activa primero y establece el formato existente en la variable nFormat. Luego, el controlador de eventos Change se activa y restablece el formato al original.

Otro enfoque que podría probar es utilizar la validación de datos. Este enfoque no requiere macros y, por lo tanto, es adecuado si su libro de trabajo será utilizado por personas que pueden tener macros deshabilitadas en su sistema.

Siga estos pasos generales:

  1. Seleccione la celda o celdas cuyo formato desea aplicar.

  2. Muestre la pestaña Datos de la cinta.

  3. Haga clic en la herramienta Validación de datos en el grupo Herramientas de datos. Excel muestra el cuadro de diálogo Validación de datos.

  4. Usando la lista desplegable Permitir, elija Personalizado. (Ver figura 2)

  5. En el cuadro Fórmula, escriba lo siguiente: = CELDA («formato», B2) = «C2». Establezca cualquier otra configuración de validación de datos como desee.

  6. Haga clic en Aceptar.

La fórmula (paso 5) verifica el formato de la celda y permite o no permite la entrada según ese formato. En la fórmula citada, el formato C2 es el nombre interno del formato de contabilidad. Puede cambiar fácilmente los códigos de la fórmula a algún otro formato, como «, 2», «C2», «C0», «C2-» o «C0-«, según sus preferencias. La forma más fácil de averiguar qué formato debe usar es formatear una celda, como desee, antes de aplicar la regla de validación de datos. (Por ejemplo, digamos que aplica el formato a la celda L13). Luego, puede usar esta fórmula en una celda diferente para ver qué formato cree Excel que ha aplicado:

=CELL("format",L13)

_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 (12729) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365.