Supongamos que debemos realizar una tarea recurrente en la que una de las acciones a realizar es la eliminación de todas las hojas existentes en un libro exceptuando una o varias hojas localizadas. Si nuestro libro contiene muchas hojas, puede llegar a resultarnos una tarea pesada no por complejidad, sino por la perdida de tiempo que nos puede llegar a ocasionar la localización y supresión de las hojas que no necesitamos.
¡Pero la solución no podría ser más rápida y sencilla! Con tan solo 7 líneas de código conseguiremos eliminar en pocos segundos cuantas hojas queramos con una pequeña macro:
Application.DisplayAlerts = wdAlertsNone
For Each hoja In Sheets
If hoja.Name <> "Conservar" Then
hoja.Delete
End If
Next
Application.DisplayAlerts = wdAlertsAll
Para todos aquellos que no estéis familiarizados con los pormenores del código de VBA, os explicar´+e brevemente lo que hace cada una de las líneas de nuestra Macro:
'Evitamos que aparezcan ventanas de confirmación de eliminación
Application.DisplayAlerts = wdAlertsNone
'Recorremos todas las hojas desde la primera a la última con la instrucción FOR EACH.
For Each hoja In Sheets
'Verificamos que la hoja actual, no se trata de alguna que deseemos conservar
If hoja.Name <> "Conservar" Then
'Al no tratarse de la hoja que deseamos conservar, la eliminamos
hoja.Delete
End If
Next
'Una vez finalizadas todas las eliminaciones, activamos nuevamente las alertas.
Application.DisplayAlerts = wdAlertsAll
Una de las partes más importantes de esta pequeña macro y que su uso puede ser muy habitual para aquellos que desarrollan macros de control, gestión y/o detección de cambios (por ejemplo: un log o regístro automátizado de cambios realizados que detecte cualquier alteración o cambio en el libro de forma automática) es la supresión de los mensajes de alerta de Microsoft Excel con la siguiente instrucción:
Application.DisplayAlerts = wdAlertsNone
Lo que conseguimos con la desactivación temporal de las alertas es evitar, en este caso; que nos aparezca el tipico mensaje de Microsoft de confirmación de supresión de la hoja. Al inhabilitar las alertas, la ejecución de nuestra pequeña macro es directa y no requiere de confirmación por parte del usuario ejecutor.
No obstante, es importante volver a activar el sistema de alertas integrado en Excel al concluir los procesos que no requieran de la presencia de las alertas:
La activacion de las alertas es importante para evitar posibles perdidas de información no deseadas tras la ejecución de nuestra macro, por lo que al final del proceso volvemos a activar las alertas con la siguiente instrucción:Application.DisplayAlerts = wdAlertsAll
No hay comentarios:
Publicar un comentario