Confirmación de ejecución de macro en MsgBox de Excel

Resuelto
laptitepero Mensajes publicados 19 Estado Miembro -  
 loloonthewave -
¡Hola!

Aquí está mi pregunta,
Tengo una macro que elimina filas, he puesto un botón de ejecución en mi hoja.
(hasta ahora todo va bien)

Me gustaría ahora crear un mensaje de confirmación para confirmar la ejecución de la macro si alguien hace clic en ese botón.
Buscando un poco, he encontrado esta macro:

Sub MaFonction()
If MsgBox("Operación irreversible. ¿Desea continuar?", vbQuestion + vbYesNo, "PREGUNTA ...") = vbYes Then
...
...
...
Else
...
End If
...
End Sub

Pero no consigo aplicarla a la mía (los ..... no me ayudan)

Gracias por vuestra ayuda.

Laptitepero

5 respuestas

  1. Polux31 Mensajes publicados 7219 Estado Miembro 1 204
     
    Hola,

    El error está ahí:

    If vbCancel Then Exit Sub Else End If


    Hay que hacer:

    If yourmsgbox = vbCancel Then Exit Sub End If


    ;o)
    «Lo que conceptualizamos bien, se expresa con claridad, y las palabras para decirlo llegan fácilmente.»
    Nicolás Boileau
    4
    1. cavrom Mensajes publicados 24 Fecha de registro   Estado Miembro Última intervención   3
       
      Dios mío, qué bueno cuando funciona. ¡Mil gracias!
      ¡Que tengas un buen día!
      0
  2. cavrom Mensajes publicados 24 Fecha de registro   Estado Miembro Última intervención   3
     
    Hola a todos,
    Tengo exactamente el mismo problema que lapetitepero, pero vuestra información no me desbloquea.
    mi sintaxis es la siguiente:
     yourmsgbox = MsgBox("Are you sure you validate?", vbOKCancel, "confirmation") If vbCancel Then Exit Sub Else End If 


    A continuación se encuentra mi código a ejecutar si se hace clic en Aceptar.
    En este caso, ya sea que haga clic en Aceptar o Cancelar, es el caso Cancelar el que se ejecuta. Pero ¿dónde está el error?
    3
    1. cavrom Mensajes publicados 24 Fecha de registro   Estado Miembro Última intervención   3
       
      para aquellos que estén interesados, aquí está la respuesta:
      'Msgbox Ok + Cancelar yourmsgbox = MsgBox("Are you sure to validate?", vbOKCancel, "Confirmation") If yourmsgbox = vbCancel Then Exit Sub End If
      0
  3. Polux31 Mensajes publicados 7219 Estado Miembro 1 204
     
    Hola,

    Los “puntitos” es el código que debe ejecutarse, es decir tu código.

    Sub MaFonction() If MsgBox("Operación irreversible. ¿Desea continuar?", vbQuestion + vbYesNo, "PREGUNTA ...") = vbYes Then ' TU CÓDIGO SI LA RESPUESTA ES "SÍ" Else ' TU CÓDIGO SI LA RESPUESTA ES "NO" End If End Sub 


    ;o)
    --
    «Lo que concebimos con claridad se enuncia con claridad, y las palabras para decirlo vienen fácilmente.»
    Nicolas Boileau
    1
    1. laptitepero Mensajes publicados 19 Estado Miembro
       
      Bien, y para decir que no hagas nada si la respuesta es no, ¿existe un código especial?

      Además, para la parte entre () después de MsgBox, ¿qué puedo tocar?
      “QUESTION….”, vuelvo a poner mi pregunta “¿Operación irreversible…?”

      Gracias
      0
    2. Polux31 Mensajes publicados 7219 Estado Miembro 1 204
       
      No hay ningún código especial!!! si no hay que hacer nada, no hay nada para codificar... así que puedes quitar el Else. O puedes poner un Exit Sub en el Else para salir del procedimiento.

      En MsgBox, "QUESTION..." es el título que aparecerá en la barra azul de la ventana de diálogo. Puedes poner lo que quieras.
      0
    3. loloonthewave
       
      ¡Super, gracias, de verdad está increíble!
      0
  4. laptitepero Mensajes publicados 19 Estado Miembro
     
    Si eso puede ayudarte, aquí está mi macro base:
    Sub SuppLigne() Dim Lig As Long Sheets("Modèle").Select Lig = ActiveCell.Row Rows(Lig).Delete Sheets("Résultat").Rows(Lig).Delete Sheets("Constantes").Rows(Lig).Delete End Sub
    0
  5. laptitepero Mensajes publicados 19 Estado Miembro
     
    Yahoo, ¡todo funciona de maravilla!
    ¡Muchas gracias!
    0
    1. Polux31 Mensajes publicados 7219 Estado Miembro 1 204
       
      Contento para ti :o)

      Buena continuación y ánimo.

      ;o)
      0