Necesito al cerrar un formulario que me de las tres opciones cerrar, cancelar o salvar

Al hacer click en un botón me da solo dos obtiones yes or no si apreito yes se salvan los elementos y si digo no sno se salvan, pero no me da la obtion de calcelalar y a veces necesito no salvar ni salir sino cancelar para seguir trabajando en el formulario. ¿Cómo logro esto? A través del Mensaje

Necesito que en el mensaje me salga salvar salir o cancelar

Private Sub img_Salir1_Click()

If ThisWorkbook.Saved = True Then
ThisWorkbook.Application.Quit
ElseIf MsgBox("Möchten Sie alle Änderungen speichern", vbYesNo) = vbYes Then 
ThisWorkbook.Save
ThisWorkbook.Application.DisplayAlerts = False
ThisWorkbook.Application.Quit
Else
ThisWorkbook.Application.DisplayAlerts = False
ThisWorkbook.Application.Quit
End If

End Sub

1 respuesta

Respuesta
2

MsgBox "Hola", vbYesNoCancel, "Adios"

resultado

Saludos Julián, necesito que al cancelar la operación no se me cierre el Formulario

Eusebio

Es que en la instrucción tienes que decirle lo que quieres que haga en caso de que pulses Cancelar.

Por ejemplo. Si tengo el formulario1 con el botón y lo presiono

Si pulso el Sí

Lo cierra.

Si pulso el No

O la instrucción que sea, en este caso le he puesto lo del mensaje

Y cuando pulso Cancelar

Se "queda" en el formulario. En este caso, en el evento Al hacer clic del botón le puse

Private Sub Comando48_Click()
Dim respuesta As Byte
respuesta = MsgBox("¿Está seguro de querer cerrar el formulario", vbYesNoCancel, "La culpa se la echas a Eusebio")
If respuesta = vbYes Then
DoCmd.Close
ElseIf respuesta = vbNo Then
MsgBox "Ha pulsado el no"
Else
Exit Sub
End If
End Sub

Julián este es mi nuevo código:


Private Sub img_Salir1_Click()
If ThisWorkbook.Saved = True Then
ThisWorkbook.Application.Quit
ElseIf MsgBox("Möchten Sie alle Änderungen speichern", vbYesNoCancel) = vbYescancel Then
ThisWorkbook.Save
ThisWorkbook.Application.DisplayAlerts = False
ThisWorkbook.Application.Quit
ElseIf ThisWorkbook.Application.DisplayAlerts = False Then
ThisWorkbook.Application.Quit
Else: ThisWorkbook.Application.DisplayAlerts = True
ThisWorkbook.Application.ag
End If

¿Me puedes incluir aquí el código para que al apretar cancelar ne me quede abierto el formulario?

Eusebio

Prefiero decírtelo en cristiano porque lo de "Möchten Sie alle... supongo que significa "Lewandowski juega en el Bayern",¿no?

Las constantes VByes, Vbno, VbOk, etc tienen un valor numérico, por eso defino Respuesta como byte o integer

Y le digo

Si la respuesta es Sí, (si respuesta=6)cierra el formulario,, si la respuesta es no( si respuesta=7) haz...( en tu caso sería Guarda...) y si la respuesta es otra cosa(lógicamente, sólo queda Cancel, entonces sal, termina, etc. de la instrucción sin hacer nada, por tanto, se queda en el formulario.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas