Macro para no guardar cambios

Anduve investigando pero no encontré lo que busco, no se si pueda; lo que deseo hacer es que cuando se elija la opción de guardar, me arroje un cuadro de formulario (ya lo cree), si elijo que si, que lo guarde y si elijo que no, que no guarde nada, ojala puedan ayudarme con esta opción, este es el código que deseo agregar cuando elija que no.

3 respuestas

Respuesta
1

H o l a:

No entendí muy bien qué es lo que tienes.

Comentas:

"

Lo que deseo hacer es que cuando se elija la opción de guardar

"

En dónde tienes la "opción de guardar", ¿en un formulario?

¿O te refieres a cuando seleccionas "Guardar" desde el menú de excel?


Envíame tu archivo con todo y formulario; me explicas qué secuencia de pasos quieres seguir y qué es lo que debe hacer la macro.

Mi correo [email protected]

Hola Experto, ya te lo mande.

Saludos

H o l a:

En los eventos hay que declarar la variable "guardar" como pública:

Public guardar
Private Sub Workbook_Open()
    Application.ScreenUpdating = False
End Sub
'
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, cancel As Boolean)
    UserForm1.Show
    If guardar = False Then
        cancel = True
    End If
End Sub
'
Private Sub Workbook_BeforeClose(cancel As Boolean)
    Application.ScreenUpdating = True
    ActiveWorkbook.Close Savechanges:=False
End Sub

En el formulario vamos a utilizar la variable pública, si presionas el botón "Sí" entonces "guardar" es verdadero. Si presionas el botón "No" entonces "guardar" es falso. Pon lo siguiente en el formulario:

Private Sub CommandButton1_Click()
    Unload Me
    ThisWorkbook.guardar = True
End Sub
'
Private Sub CommandButton2_Click()
    Unload Me
    ThisWorkbook.guardar = False
End Sub

En el evento BeforSave, se pregunta por la variable "guardar", si la variable es igual a False entonces no guarda los cambios.


' : )
'S aludos. Dante Amor. R ecuerda valorar la respuesta. G racias
' : )
Respuesta
1

Otra opción posible:

Se entiende que la opción de guardar se encuentra en un userform, entonces allí coloca este código:

sino = Msgbox("¿Deseas guardar los cambios?", vbyesno, "Confirmar guardado")

If sino = vbyes Then Thisworkbook.save

Unload me

Tienes que asegurarte de que siempre se cierre el UF desde ese botón y no desde la x del extremo superior derecho. Sino tu opción de 'guardar' debe contener sólo la instrucción: Unload Me y en el evento QueryClose del Userform la del MsgBox.

Respuesta
1

Prueba colocando el siguiente código en el botón que tienes programado para no guardar cambios.

ThisWorkbook.Close False

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas