Home > vba > Macro para impedir que se guarde un archivo de Excel

Macro para impedir que se guarde un archivo de Excel

Twittear este post Compartir en Facebook

Cómo hacer para que no se guarde un archivo de Excel, es el post de esta noche. Es decir, si mandamos archivos por correo electrónico o los compartimos mediante una red local y no queremos que quienes usen el archivo, aunque hagan modificaciones en él, lo puedan guardar.

Esto se realiza mediante macros de eventos. Recordemos que los eventos son acciones propias de Excel, y que al suceder, podemos asignarle una macro. Por ejemplo está el evento de Activar hoja, Antes de imprimir, Al modificar celdas, etc. Recordemos que al ser mediante macros, la seguridad de Excel debe permitir la ejecución de macros.

Los eventos utilizados para este ejercicio son Antes de cerrar (BeforeClose) y Antes de guardar (BeforeSave). Es importante que el código de los eventos esté en el objeto ThisWorkbook. El código a utilizar será:

Evento que se ejecutará al momento de elegir Guardar o Guardar como, el cual impedirá la acción:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
MsgBox "No tienes permitido guardar el archivo.", vbCritical, "EXCELeINFO"
Cancel = True
End Sub

Evento que se ejecutará al momento de cerrar el archivo, tanto presionando la x o las combinaciones para cerrar Ctrl + F4 o Alt + F4, el cual cerrará el archivo sin preguntar si lo desea guardar:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.Close Savechanges:=False
End Sub
Categories: vba Tags: , ,
  1. pit
    March 13, 2012 at 17:39

    super me ayudo muchisimo gracias

  2. takki
    April 16, 2012 at 02:33

    Ok, está genial la verdad, pero tengo una duda… cómo se graba esta macro, si al “escribirla” ya no te deja grabar el excel???
    gracias!!

    • sergioacamposh
      April 16, 2012 at 07:24

      Buena pregunta. Antes de abrir el archivo hay que desactivar la ejecución de macros. Abrimos el archivo, guardamos, cerramos, le volvemos a activar las macros y reiniciamos Excel.

  3. October 26, 2012 at 12:31

    Hola, traté deshabilitar las macros (Excel 2010) tildando “Deshabilitar todas las macros sin notificación”, cerré el programa, volví a abrir y al intentar copiar el código no me deja guardar, es decir, la macro me bloquea. Te pido por favor si me das una mano para solucionarlo, ya que necesito implementarlas. Gracias.

    • October 26, 2012 at 13:35

      Con gusto German.

      Pega el código cuando tengas las macros deshabilitadas para que no te lo detecte al cerrarlo. Después de cerrarlo vuelve a habilitar las macros.

      • October 28, 2012 at 05:40

        Sinceramente, no sé que estaré haciendo mal, pero siguiendo los pasos, no me funciona. Muchas gracias de todas maneras, está genial el blog.

    • October 28, 2012 at 22:55

      Sigue los siguientes pasos tal cual:

      Abre Excel y deshabilta las macros.
      Cierra Excel y abre tu archivo.
      Pega el código en el módulo ThisWorkbook.
      Guarda tu archivo con el codigo incluido y lo cierras.
      Vuelve a habilitar las macros.
      Cierra y vuelve a abrir Excel.

      Si sigues estos pasos debe funcionarte.

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s