Problema con BeforeClose porque genera error

Tengo un archivo que genera un error al cerrar, ya que si bien cierra la aplicación, posterior al cierre muestra el formulario de Visual Basic pidiendo contraseña, y si se le da cerrar, dice que Microsoft Excel dejó de funcionar.

La macro es la siguiente:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
YesNo = MsgBox("EL LIBRO SE CERRARÁ." & Chr(10) & "¿Desea conatinuar?", vbYesNo + vbExclamation, "PRECAUCION")
Select Case YesNo
Case vbYes
If Range("G1") = 1 Then Exit Sub
Application.DisplayAlerts = False
Sheets("INICIO").Select
'GUARDA Y GUARDA COPIA
If ThisWorkbook.Saved = False Then
ThisWorkbook.Save
End If
Call ocultarHojas
Dim MiArchivo As String
MiArchivo = Sheets("INICIO").Range("A55")
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= _
"C:\MisDocumentos\" & MiArchivo, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=True
'Application.DisplayAlerts = True
MsgBox "Hasta pronto!", vbInformation, "CIERRE"

Case vbNo
Cancel = True
ThisWorkbook.Save
MsgBox "Operación cancelada"
End Select
End Sub

He intentado colocandole despues de operación cancelada la instrucción Activeworkbook. Close, pero se genera un bucle que vuelve a informar que el libro se cerrará.

¿Qué instrucción puedo darle para que al cerrar no se ejecute visual basic?

1 respuesta

Respuesta
2

H o l a:

Puse tu macro en una archivo nuevo y no tengo problemas.

¿En tu archivo tienes el evento Open?


Tal vez tu archivo está dañado, te recomiendo que pases las hojas, hoja por hoja a un nuevo archivo.


También te recomiendo, si vas a guardar una copia, utiliza savecopias:

Cambia esta línea:

ActiveWorkbook.SaveAs Filename:= _
"C:\MisDocumentos\" & MiArchivo, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=True

Por esta:

ActiveWorkbook.SaveCopyAs "C:\MisDocumentos\" & MiArchivo & "*.xlsm"

Si el problema se resolvió, no olvides valorar la respuesta.

Si todavía tienes problemas envíame tu archivo para revisarlo.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “LORENA706” y el título de esta pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas