¿Por qué no puedo cerrar un libro excel después de haber ejecutado una macro?

Tengo un libro que ejecuta varias macros para elaborar planillas (la que me ayudaste muy amablemente), el caso es que para generar las diferentes planillas he creado solo un botón que abre un useform, en el puedo escoger mediante un check que planillas deseo generar, es el caso que después de ejecutar la macro no puedo cerrar desde la hoja donde esta la planilla generada, sino tengo que regresar a la hoja donde esta el botón que inicialmente presione donde recién puedo cerrar el libro excel.

1 Respuesta

Respuesta
1

H o l a:

Puedes enviarme tu archivo para revisarlo, me explicas paso a paso qué debo hacer para reproducir el problema.

Mi correo [email protected]

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

Ya envié a tu correo el archivo y todo lo relacionado a mi petición, gracias

H o l a:

Tú macro tiene 2 detalles, 

primero, tienes un Else cuando deberías tener un End If

Segundo, tienes la instrucción Userform2.Hide

Eso significa que le Userform2 todavía está abierto, solamente lo ocultaste. Lo que debes hacer es poner la instrucción

Unload ME

Private Sub CommandButton1_Click()
    If CheckBox1.Value = True Then
        Call GenerarN1
        CheckBox1.Value = False
    End If
    If CheckBox2.Value = True Then
        Call GenerarO1
        CheckBox2.Value = False
    End If
    If CheckBox3.Value = True Then
        Call GenerarC1
        CheckBox3.Value = False
    End If
    If CheckBox4.Value = True Then
        Call GenerarG1
        CheckBox4.Value = False
    End If
    If CheckBox5.Value = True Then
        Call GenerarE1
        CheckBox5.Value = False
    End If
    If CheckBox6.Value = True Then
        Call GenerarALCALDE
        CheckBox6.Value = False
    End If
    If CheckBox7.Value = True Then
        Call GenerarD
        CheckBox7.Value = False
    End If
    If CheckBox8.Value = True Then
        Call GenerarA1
        CheckBox8.Value = False
    End If
    If CheckBox9.Value = True Then
        Call GenerarA2
        CheckBox9.Value = False
    End If
    If CheckBox10.Value = True Then
        Call GenerarA3
        CheckBox10.Value = False
    End If
    'UserForm2.Hide
    Unload Me
End Sub


Prueba y me cometas


':)
'S aludos. D a n t e   A m o r . R ecuerda valorar la respuesta. G racias
':)

He realizado los cambios que me aconsejas, pero no ha cambiado nada aun sigue con el problema

El Else a que te refieres no logro ubicarlo a cual te refieres. Gracias

Mencionaste esto:

"macro no puedo cerrar"

¿A qué te refieres?

¿Te refieres a cerrar el archivo?

¿Qué mensaje de error te aparece?

¿Cuántas veces ejecutas la macro?

¿Probaste con el archivo que te envié?

E spero tus comentarios de cada una de las dudas.

Ejecuta la macro, escoge generar una planilla (cualquiera), una vez generada sale el aviso "planilla generada" y se va a la hoja de la planilla generada, ahora intenta cerrar el archivo excel desde la hoja que se mostró al generar la planilla, no se puede, tengo que cambiar de hoja y recién puedo cerrar el archivo.

Pero a mi sí me deja cerrar el libro, solamente me envía el mensaje:

"Desea guardar los cambios efectuados?"

Presiono el botón "Sí", entonces guarda el archivo y se cierra.

¿A ti qué mensaje de error te aparece?

En esta parte del código que me enviaste tienes un else:


¿Qué versión de excel tienes?

¿Qué mensaje de error te aparece cuando intentas cerrar?

A mi sí me deja, solamente me aparece un mensaje que dice:

"Desea guardar los cambios efectuados...?

Presiono el botón "Sí", entonces el archivo se guarda y se cierra.

La versión es Excel 2013 y no aparece ningún mensaje, es decir le doy clic en el botón superior como para cerrar el archivo y no sale nada, no cierra y tampoco sale algún mensaje habitual como "Desea guardar los cambios efectuados...?, tengo que cambiar de hoja para cerrar, alli si se cierra como normalmente lo hace cualquier archivo. Es raro.

Como te comento, no puedo replicar el problema.

Si ya cambiaste estas líneas:

 'UserForm2. Hide
    Unload Me

Entonces, agrega lo siguiente para regresar a la hoja

 'UserForm2. Hide
    Unload Me
    Sheets("PLA1").Select
    ActiveWorkbook. Save

Prueba y me comentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas