• 👏 Bienvenido a nuestra comunidad Excel

    ¿Todavía no estás registrado? 😲

    Registrate gratis aquí y podrás:

    💪 Hacer preguntas a los expertos
    ⬇️ Descargar ejemplos y plantillas
    🏅 
    Acceder a contenidos premium

Al ejecutar una Macro, necesito que me solicite confirmación

wicho15

Member
Hola:
Necesito, en el ejemplo adjunto, el cual tiene 4 macros, que al ejecutarlas, me solicite confirmación en cada una de ellas. Ejemplo si ejecuto la macro desproteger hojas. Que me pregunte: "VAS A EJECUTAR LA MACRO DESPROTEGER HOJAS?", continúas, SI o NO, que me dé esas dos opciones, si es SI, que se ejecute la macro, caso contrario, porque me equivoqué o por lo que fuese, si le pongo NO, que no ejecute la macro.
Muchas Gracias
 

Adjuntos

hhernan

Active member
Necesito, en el ejemplo adjunto, el cual tiene 4 macros, que al ejecutarlas, me solicite confirmación en cada una de ellas. Ejemplo si ejecuto la macro desproteger hojas. Que me pregunte: "VAS A EJECUTAR LA MACRO DESPROTEGER HOJAS?", continúas, SI o NO, que me dé esas dos opciones, si es SI, que se ejecute la macro, caso contrario, porque me equivoqué o por lo que fuese, si le pongo NO, que no ejecute la macro.
Muchas Gracias
Hola @wicho15

Adjunto propuesta para preguntar: "Vas a ejecutar la macro..." ,presione el botón desproteger

Por cierto, su archivo solo tiene dos módulos ...
 

Adjuntos

protostecnologia

Active member
Hola:
Necesito, en el ejemplo adjunto, el cual tiene 4 macros, que al ejecutarlas, me solicite confirmación en cada una de ellas. Ejemplo si ejecuto la macro desproteger hojas. Que me pregunte: "VAS A EJECUTAR LA MACRO DESPROTEGER HOJAS?", continúas, SI o NO, que me dé esas dos opciones, si es SI, que se ejecute la macro, caso contrario, porque me equivoqué o por lo que fuese, si le pongo NO, que no ejecute la macro.
Muchas Gracias
Estimado wicho15, paso el archivo con la solucion. Y el Codigo en VBA.


Proteger hoja:

Código:
Sub PROTEGERHOJAS()

If MsgBox("VAS A EJECUTAR LA MACRO PROTEGER HOJAS?", vbExclamation + vbYesNo) = vbYes Then

Dim i As Integer, HojaActual As Integer
Application.ScreenUpdating = False
HojaActual = ActiveSheet.Index 'es para después restaurar
For i = 1 To Sheets.Count
  Sheets(i).Select
  ActiveSheet.Protect "1234"
Next i
Sheets(HojaActual).Select
Application.ScreenUpdating = True

Else


'Ingreso por opcion NO en el msgbox
End If

End Sub



Desproteger hoja:

Código:
Sub DESPROTEGERHOJAS()

If MsgBox("VAS A EJECUTAR LA MACRO DESPROTEGER HOJAS?", vbExclamation + vbYesNo) = vbYes Then

Dim i As Integer, HojaActual As Integer
Application.ScreenUpdating = False
HojaActual = ActiveSheet.Index 'es para después restaurar
For i = 1 To Sheets.Count
  Sheets(i).Select
  ActiveSheet.Unprotect "1234"
Next i
Sheets(HojaActual).Select
Application.ScreenUpdating = True

Else

'Ingreso por opcion NO en el msgbox

End If


End Sub


Probalo y avisame, saludos.
 

Adjuntos

wicho15

Member
Estimado wicho15, paso el archivo con la solucion. Y el Codigo en VBA.


Proteger hoja:

Código:
Sub PROTEGERHOJAS()

If MsgBox("VAS A EJECUTAR LA MACRO PROTEGER HOJAS?", vbExclamation + vbYesNo) = vbYes Then

Dim i As Integer, HojaActual As Integer
Application.ScreenUpdating = False
HojaActual = ActiveSheet.Index 'es para después restaurar
For i = 1 To Sheets.Count
  Sheets(i).Select
  ActiveSheet.Protect "1234"
Next i
Sheets(HojaActual).Select
Application.ScreenUpdating = True

Else


'Ingreso por opcion NO en el msgbox
End If

End Sub



Desproteger hoja:

Código:
Sub DESPROTEGERHOJAS()

If MsgBox("VAS A EJECUTAR LA MACRO DESPROTEGER HOJAS?", vbExclamation + vbYesNo) = vbYes Then

Dim i As Integer, HojaActual As Integer
Application.ScreenUpdating = False
HojaActual = ActiveSheet.Index 'es para después restaurar
For i = 1 To Sheets.Count
  Sheets(i).Select
  ActiveSheet.Unprotect "1234"
Next i
Sheets(HojaActual).Select
Application.ScreenUpdating = True

Else

'Ingreso por opcion NO en el msgbox

End If


End Sub


Probalo y avisame, saludos.
Funcionó perfecto. Muchas pero muchisimas gracias. Saludos
 

wicho15

Member
Hola @wicho15

Adjunto propuesta para preguntar: "Vas a ejecutar la macro..." ,presione el botón desproteger

Por cierto, su archivo solo tiene dos módulos ...
Hola Hernan, me da un error en tiempo de ejecución, pero la repuesta siguiente me anduvo perfecto. De todos modos, mi agradecimiento total y muchísimas gracias por vuestra colaboración. Saludos
 
Arriba