2011-12-20 9 views
17

Tengo un botón en mi formulario que borra todo el libro de trabajo de 8 hojas. Quiero limpiarlo ocasionalmente, pero odiaría hacerlo por accidente. He intentado buscar en Google, pero cada resultado que he encontrado supone que tengo una comprensión mucho más firme de VBA que yo. ¿Cómo puedo hacer para que cuando se hace clic en el botón aparezca un cuadro de diálogo que dice "Esto borrará todo! ¿Estás seguro? [Continuar] [Cancelar]"? Gracias.Añadir "¿Estás seguro?" a mi botón excel, ¿cómo puedo?

Respuesta

53

En el código del botón existente, basta con insertar esta línea antes del procedimiento:

If MsgBox("This will erase everything! Are you sure?", vbYesNo) = vbNo Then Exit Sub 

Esto obligará a dejar de fumar si el usuario pulsa ninguna.

+0

+1 más ordenado para trabajar con las constantes incorporadas – brettdj

+0

+1 De acuerdo con @brettdj. En general, es mejor usar las constantes para legibilidad y facilidad de mantenimiento. –

+3

+1 Me gusta esta respuesta, pero estrictamente hablando, 'Si MsgBox (" Esto borrará todo, ¿estás seguro? ", VbOKCancel) = vbOK Then' habría estado más cerca ya que pidió los botones' Continuar' y 'Cancelar' . – JimmyPena

0

Simplemente haga una forma de usuario personalizada que se muestra cuando se presiona el botón "eliminar", luego enlace el botón Continuar con el código real que elimina. Haga que el botón cancelar oculte la forma de usuario.

9

Crea un nuevo submarino con el siguiente código y asígnalo a tu botón. Cambia el "DeleteProcess" al nombre de tu código para hacer la eliminación. Aparecerá un cuadro con Aceptar o Cancelar y llamará a su submenú eliminar si pulsa Aceptar y no si pulsa cancelar.

Sub AreYouSure() 

Dim Sure As Integer 

Sure = MsgBox("Are you sure?", vbOKCancel) 
If Sure = 1 Then Call DeleteProcess 

End Sub 

Jesse

Cuestiones relacionadas