Home > Excel, Formatos, Forms, Formularios, Macros, Trucos > Guardar archivo de Excel solo si se ingresa contraseña

Guardar archivo de Excel solo si se ingresa contraseña

En el artículo llamado Macro para impedir que se guarde un archivo de Excel exponíamos una macro que no te permitía guardar cambios en un archivo ni guardar una copia del mismo.

El código tiene la debilidad de que si queremos, como creadores, guardar cambios que no querramos que otros modifiquen, debíamos deshabilitar macros para hacer los cambios y luego volver a habilitarlas.

La mejora

Mediante la función InputBox lanzamos un diálogo que nos permite introducir una contraseña, y sólo si ingresamos la adecuada, nos permitirá guardar cambios o guardar una copia.

Código

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Pass = "12345"
    Confirma = InputBox("Escribe una contraseña para continuar.", _
        "EXCELeINFO - Guardar")
    If Confirma = Pass Then
    Else
        MsgBox "No tienes permitido guardar el archivo.", vbCritical, _
            "EXCELeINFO"
        Cancel = True
    End If
End Sub

Animación de la macro en ejecución

guardar archivo de Excel solo si se ingresa contraseña

  1. germantinao
    November 20, 2012 at 05:16

    Muy bueno, gracias!

  2. germantinao
    November 20, 2012 at 09:17

    Hola Sergio, te hago una consulta, ya que nos tenés acostumbrados a superar nuestras expectativas: ¿puede hacerse que no se muestren los caracteres de la contraseña ingresada? Es decir, que se muestren, por ejemplo, círculos negros como en los formularios web?
    Gracias.
    Germán.

  3. November 20, 2012 at 11:49

    Para hacer el efecto de Contraseña, se deberá crear un formulario y asignar la propiedad PasswordChar a un TextBox.

    Tal como viene en este ejemplo: https://exceleinfo.wordpress.com/2012/03/30/simular-acceso-con-usuario-y-password-en-excel-con-formulario-vba/

  1. November 26, 2012 at 18:49

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