Impedir el Comando “GUARDAR COMO” en un Libro de Excel

Se puede especificar que cualquier libro de Excel sea guardado como sólo lectura activando la casilla de verificación Se recomienda sólo lectura que se encuentra accediendo a la opción Opciones generales del cuadro de diálogo Guardar. Con esto, se evita que un usuario pueda guardar cualquier cambio que haya realizado al archivo, a menos que lo grabe con un nombre diferente o en una ubicación distinta.

A veces, sin embargo, deseará impedir que los usuarios puedan guardar una copia del libro en otra carpeta con el mismo nombre de archivo o con cualquier otro. En otras palabras, lo que desea es que los usuarios sólo puedan guardar sobre el archivo existente y no crear otra copia del mismo. Esto es particularmente interesante cuando hay más de una persona guardando los cambios en un libro de Excel, porque no desea que haya diferentes copias de un mismo libro guardadas con el mismo nombre pero en carpetas diferentes.

El evento BeforeSave que vamos a utilizar existe desde Excel 97. Como su propio nombre indica, este evento se produce justamente antes de que un libro sea guardado, permitiéndole interactuar con el usuario mostrando una advertencia e impidiendo que Excel continuar grabando.

Antes de probar esto en su casa, asegúrese de guardar su libro de Excel antes. Si coloca este código sin haber guardado los cambios antes, ya no podrá hacerlo.

Para insertar el código, abra el libro de Excel, haga clic con el botón derecho del ratón en la hoja1de Excel situado justo a la izquierda inferior y seleccione la opción Ver código, como se puede ver en la figura 1.1

excel01

Figura 1.1. SubMenu de acceso rápido al modulo privado de objeto Workbook.

Escriba el siguiente código en VBE, tal y como se muestra en la figura 1.2

excel02

Figura 1.2. Código una vez introducido en el módulo privado (ThisWorkbook).

Prívate Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Dim lReply As Long

If SaveAsUI = True Then

lReply = MsgBox(“No tiene permiso para guardar este ” & _

“libro con otro nombre. ¿Desea guardarlo con el mismo nombre?”, _

vbQuestion + vbOKCancel)

Cancel = (lReply = vbCancel)

If Cancel = False Then Me.Save

Cancel = True

End If

End Sub

Vamos a probarlo. Seleccione la opción Archivo>Guardar y el libro se guardará de forma normal. Ahora, intente seleccionar la opción Archivo>Guardar como y entonces verá un mensaje que le indica que no tiene permiso para guardar este libro con otro nombre diferente.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s