Facebook Twitter Gplus Flickr Pinterest LinkedIn YouTube RSS
Home Excel vba Macro para impedir que se guarde un archivo de Excel
formats

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
 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
11 Comments  comments 
  • pit

    super me ayudo muchisimo gracias

  • takki

    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

      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.

  • http://gravatar.com/german german

    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.

    • http://about.me/sergioacamposh sergioacamposh

      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.

      • http://gravatar.com/german german

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

        • 1antares1

          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.

    • http://about.me/sergioacamposh sergioacamposh

      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.

  • David

    Excelente aportacion me sivio muy bien, Gracias..

  • Karen

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

    • sergioacamposh

      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.

Sistema Wordpress corriendo bajo... Windows Server 2008 R2
Follow

Get every new post delivered to your Inbox

Join other followers