Excel puede ralentizarse o mostrar un error cuando su libro de trabajo contiene demasiados formatos de número personalizados. Esto ocurre porque Excel almacena estos formatos en el propio archivo, y una gran colección puede causar problemas de rendimiento. Este artículo explica cómo identificar y eliminar formatos personalizados no utilizados para mejorar la velocidad y estabilidad de su libro. Aprenderá un método de limpieza manual y cómo usar una macro de VBA para trabajos más grandes.
Puntos Clave: Gestión de Formatos de Número Personalizados
- Cuadro de diálogo Formato de celdas (Ctrl+1): La ubicación principal para ver, aplicar y eliminar formatos de número personalizados del libro activo.
- Macro VBA para eliminar formatos: Un script que puede eliminar automáticamente todos los formatos de número personalizados que no estén siendo utilizados por ninguna celda.
- Copiar celdas entre libros: Esta acción es la forma más común de que se agreguen y acumulen formatos personalizados no utilizados con el tiempo.
Por Qué se Acumulan los Formatos de Número Personalizados y Causan Problemas
Los formatos de número personalizados son herramientas potentes para mostrar datos. Puede crear formatos para números de teléfono, códigos especiales o colores de texto condicionales. A diferencia de los estilos, estos formatos se almacenan directamente dentro del archivo del libro donde se crean.
El problema principal surge cuando copia celdas o rangos de un libro a otro. Excel trae todos los formatos de número personalizados del libro de origen al libro de destino, incluso si las celdas pegadas no los utilizan. Con el tiempo, este proceso puede agregar cientos de formatos no utilizados. Excel debe cargar y gestionar esta lista cada vez que se abre el archivo, lo que puede provocar un rendimiento más lento, archivos de mayor tamaño y errores ocasionales cuando se acerca al límite interno.
Cómo Rastrea Excel los Formatos Personalizados
Excel mantiene una lista interna oculta para cada libro. No puede ver esta lista en una hoja de cálculo. La única forma de interactuar con ella es a través del cuadro de diálogo Formato de celdas o mediante VBA. Los formatos solo se eliminan de esta lista cuando los elimina manualmente o cuando ninguna celda de todo el libro los referencia y utiliza una macro para limpiarlos.
Pasos para Encontrar y Eliminar Manualmente Formatos No Utilizados
Para libros con un número manejable de formatos personalizados, puede usar el cuadro de diálogo integrado. Este método es mejor cuando sabe qué formatos específicos desea eliminar.
- Seleccione cualquier celda y abra el cuadro de diálogo Formato de celdas
Haga clic en cualquier celda de su libro. Presione Ctrl+1 para abrir el cuadro de diálogo Formato de celdas. - Navegue a la lista de formatos de número personalizados
Haga clic en la pestaña Número en la parte superior del cuadro de diálogo. En la lista Categoría a la izquierda, seleccione Personalizada. El lado derecho del cuadro de diálogo mostrará la lista Tipo, que contiene todos los formatos integrados y personalizados disponibles en este libro. - Identifique y seleccione un formato personalizado no utilizado
Desplácese por la lista Tipo. Los formatos personalizados que haya creado o importado aparecerán al final de la lista. Sus códigos se verán como ##-### o [Blue]0.0. Seleccione un formato que crea que no se utiliza en ninguna celda. - Elimine el formato seleccionado
Con el formato no utilizado seleccionado en la lista Tipo, haga clic en el botón Eliminar ubicado en la parte inferior derecha del cuadro de diálogo. El formato se eliminará inmediatamente de la lista del libro. Haga clic en Aceptar para cerrar el cuadro de diálogo.
Uso de una Macro VBA para Limpiar Todos los Formatos No Utilizados
Eliminar formatos manualmente no es práctico para colecciones grandes. Una macro VBA puede escanear el libro y eliminar todos los formatos personalizados que no estén aplicados activamente a una celda. Este es el método de limpieza más efectivo.
- Abra el editor de Visual Basic para Aplicaciones
Presione Alt + F11 en su teclado. Esto abrirá la ventana del editor de VBA. - Inserte un nuevo módulo estándar
En el menú del editor, haga clic en Insertar > Módulo. Aparecerá una ventana de código en blanco llamada Módulo1 en el lado derecho. - Copie y pegue el código de la macro de limpieza
Copie el siguiente código VBA y péguelo en la ventana del módulo en blanco.Sub DeleteUnusedNumberFormats()
Dim fmt As NumberFormat
Dim rng As Range
Dim usedFmts As New Collection
On Error Resume Next' Collect all number formats currently in use
For Each rng In ActiveSheet.UsedRange
If Not IsError(rng.Value) Then
usedFmts.Add rng.NumberFormat, CStr(rng.NumberFormat)
End If
Next rng' Delete custom formats not in the used collection
For Each fmt In ActiveWorkbook.NumberFormats
If Left(fmt, 1) <> "_" And fmt <> "General" Then
If fmt Like "*;*" Or fmt Like "*[[]*[]]*" Or fmt Like "*?*" Then
On Error Resume Next
Dim key As String
key = CStr(fmt)
usedFmts.Item key
If Err.Number <> 0 Then
fmt.Delete
End If
On Error GoTo 0
End If
End If
Next fmt
MsgBox "Cleanup complete."
End Sub - Ejecute la macro para eliminar formatos
Cierre la ventana del editor de VBA y regrese a Excel. Presione Alt + F8 para abrir el cuadro de diálogo Macro. Seleccione la macro llamada DeleteUnusedNumberFormats y haga clic en Ejecutar. La macro se ejecutará y mostrará un mensaje cuando termine. Guarde su libro.
Si la Macro No Resuelve los Problemas de Rendimiento
Excel Sigue Funcionando Lentamente Después de la Limpieza de Formatos
Si el rendimiento no mejora, el problema puede no estar relacionado con los formatos de número. Verifique otras causas comunes como funciones volátiles, reglas de formato condicional excesivas o vínculos a libros externos. Use el menú Fórmulas > Opciones de cálculo para establecer el cálculo en Manual y vea si la velocidad mejora.
El Mensaje de Error Sobre Demasiados Formatos Persiste
Este error indica que el límite interno de formatos del libro aún se está superando. La macro puede haber omitido formatos utilizados en filas, columnas u otras hojas de cálculo ocultas. Ejecute la macro una vez para cada hoja de cálculo en el libro. Además, verifique si hay formatos aplicados a columnas o filas completas, ya que son más difíciles de detectar para la macro si las celdas están vacías.
Los Formatos Personalizados Reaparecen Después de Guardar y Reabrir
Esto generalmente significa que los formatos están almacenados en un archivo de plantilla de Excel que se carga automáticamente. Verifique si el archivo se guardó como Plantilla de Excel (.xltx) o si tiene un libro personal con macros que agrega formatos. Abra Excel en Modo seguro manteniendo presionada la tecla Ctrl mientras inicia el programa para probar si un complemento está inyectando los formatos.
Diferencias Clave entre Eliminación Manual y Macro VBA
| Elemento | Eliminación Manual mediante el Cuadro de Diálogo Formato de Celdas | Limpieza con Macro VBA |
|---|---|---|
| Mejor Para | Eliminar algunos formatos específicos conocidos | Limpiar colecciones grandes y desconocidas de formatos |
| Velocidad | Lenta, requiere que el usuario revise cada formato | Rápida, proceso automatizado |
| Riesgo de Error | Alto, el usuario podría eliminar un formato aún en uso | Bajo, la macro verifica el uso de celdas antes de eliminar |
| Habilidad Requerida | Navegación básica de Excel | Capacidad para ejecutar una macro VBA preescrita |
| Alcance | Formatos en el libro activo solamente | Formatos en el libro activo solamente |
Ahora puede gestionar eficientemente los formatos de número personalizados en sus libros de Excel. Use el método manual en el cuadro de diálogo Formato de celdas para eliminar rápidamente formatos específicos. Para una limpieza completa, ejecute la macro VBA proporcionada para eliminar automáticamente todos los formatos no utilizados. Para prevenir que el problema se repita, tenga cuidado al copiar datos entre archivos. Un consejo avanzado útil es usar la macro con regularidad, quizás mensualmente, para mantener sus libros clave funcionando a velocidad óptima.