Para Dam - Macro que pida contraseña para permitir guardar

Pensando en la pregunta que esta activa se me ocurre algo que no se si pueda:

Cuando se va a cerrar el libro (en cualquiera de las maneras de cierre) se ejecute una macro en el evento Workbook_BeforeClose que pregunte si quiere guardar los cambios, si el usuario elije no, el libro se cierra, pero si elije que si, la macro exija contraseña para que guarde los cambios. Dando dos oportunidades, si en la segunda no se digita adecuadamente el libro se cierre sin Guardar.

¿Muy dificil?

1 Respuesta

Respuesta
2

Estás serían las macros.

En el evento de Thisworkbook copia lo siguiente

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'por.dam
Application.EnableEvents = True
contador = 1
If MsgBox("Desas guardar los cambios", vbQuestion & vbYesNo) = vbYes Then
    Do While contador < 3
        clave = InputBox("Contraseña: ")
        If clave = "a" Then
            ActiveWorkbook.Save
            Application.EnableEvents = False
            Application.DisplayAlerts = False
            ActiveWorkbook.Close
        Else
            If contador < 2 Then
                MsgBox "Clave errónea, intenta nuevamente"
                contador = contador + 1
                Cancel = True
            Else
                MsgBox "Clave errónea, se cierra el libro"
                Application.EnableEvents = False
                Application.DisplayAlerts = False
                ActiveWorkbook.Close
            End If
        End If
    Loop
Else
    Application.EnableEvents = False
    Application.DisplayAlerts = False
    ActiveWorkbook.Close
End If
End Sub
Private Sub Workbook_Open()
Application.EnableEvents = True
End Sub

1. También necesitamos poner en un módulo la siguiente, macro

2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11

3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro

Sub auto_open()
Application.EnableEvents = True
End Sub

La macro funciona para 2 intentos , si quieres más intentos, cambia el número en esta línea

If contador < 2 Then

Prueba y me comentas

Saludos. Dam
Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas