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

You may also like...

11 Responses

  1. pit says:

    super me ayudo muchisimo gracias

  2. takki says:

    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 says:

      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. german says:

    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.

    • 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.

      • german says:

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

        • 1antares1 says:

          Para los recientes (2 años después :P). El amigo sergioacamposh probablemente instaló Office sin reiniciar el equipo.

          Sin esto, aún Excel no reconoce la configuración predeterminada de Macros.

          Saludos.

    • 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.

  4. David says:

    Excelente aportacion me sivio muy bien, Gracias..

  5. Karen says:

    necesito guardar este codigo en el archivo de excel pero no me permite, como puedo hacer?

    • sergioacamposh says:

      Lo que te recomiendo es que deshabilitar las macros de Excel, pegar el código y guardar.

      Vuelves a habilita macros y ya debería funcionar.

Leave a Reply / Deja un comentario

Follow

Get every new post delivered to your Inbox

Join other followers