Saltar al contenido

Abrir msgbox al cambiar de hoja

publicado

Hola,

Necesitaria saber como hacer que al clickar la pestaña de una hoja para cambiar de pantalla se me abra un MsgBox preguntando si estoy seguro de querer salir ya que al pasar a la hoja principal se me reinician todos los valores.

Como lo puedo hacer?

Muchas gracias

Featured Replies

publicado
  • Autor

Tengo eso:

Private Sub Worksheet_Activate()

If ((Hoja3.Visible = False)) Then

Hoja4.Range("G22").Value = Hoja2.Range("G17").Value

Hoja4.Range("D3").Value = Hoja2.Range("C2").Value

Hoja4.Range("D4").Value = Hoja2.Range("H2").Value

Hoja4.Range("H18").Value = Hoja2.Range("H13").Value

Hoja4.Range("H19").Value = Hoja2.Range("H14").Value

Hoja4.Range("H21").Value = Hoja2.Range("H16").Value

Hoja4.Range("H39").Value = Hoja2.Range("H34").Value

Hoja4.Range("H55").Value = Hoja2.Range("H50").Value

Hoja4.Range("H59").Value = Hoja2.Range("H54").Value

Hoja4.Range("H60").Value = Hoja2.Range("H55").Value

Else

Hoja4.Range("D4").Value = Hoja3.Range("H2").Value

Hoja4.Range("G22").Value = Hoja3.Range("G17").Value

Hoja4.Range("D3").Value = Hoja3.Range("C2").Value

Hoja4.Range("D4").Value = Hoja3.Range("H2").Value

Hoja4.Range("H18").Value = Hoja3.Range("H13").Value

Hoja4.Range("H19").Value = Hoja3.Range("H14").Value

Hoja4.Range("H21").Value = Hoja3.Range("H16").Value

Hoja4.Range("H39").Value = Hoja3.Range("H34").Value

Hoja4.Range("H55").Value = Hoja3.Range("H50").Value

Hoja4.Range("H59").Value = Hoja3.Range("H54").Value

Hoja4.Range("H60").Value = Hoja3.Range("H55").Value

End If

End Sub

Esos valores los pongo cuando activo la hoja 2.

Para cambiar de opción tengo que pasar por la pantalla principal, luego quiero que cuando clicke sobre la hoja1 estando en cualquier de las otras hojas me salga un MsgBox preguntando si estoy seguro de querer salir.

Espero haber aclarado lo que quiero

publicado

Adjuntando el ejemplo que dice Riddle nos evitas tener que recrear tu archivo, por ende nos facilitas ayudarte.

Las normas establecen que los codigos publicados deben usar etiquetas.

Lo anterior es para que recibas mejor atencion, gracias.

publicado
  • Autor

Vuelvo a poner el código con etiquetas, lo siento.

Private Sub Worksheet_Activate()
If ((Hoja3.Visible = False)) Then
Hoja4.Range("G22").Value = Hoja2.Range("G17").Value
Hoja4.Range("D3").Value = Hoja2.Range("C2").Value
Hoja4.Range("D4").Value = Hoja2.Range("H2").Value
Hoja4.Range("H18").Value = Hoja2.Range("H13").Value
Hoja4.Range("H19").Value = Hoja2.Range("H14").Value
Hoja4.Range("H21").Value = Hoja2.Range("H16").Value
Hoja4.Range("H39").Value = Hoja2.Range("H34").Value
Hoja4.Range("H55").Value = Hoja2.Range("H50").Value
Hoja4.Range("H59").Value = Hoja2.Range("H54").Value
Hoja4.Range("H60").Value = Hoja2.Range("H55").Value
Else
Hoja4.Range("D4").Value = Hoja3.Range("H2").Value
Hoja4.Range("G22").Value = Hoja3.Range("G17").Value
Hoja4.Range("D3").Value = Hoja3.Range("C2").Value
Hoja4.Range("D4").Value = Hoja3.Range("H2").Value
Hoja4.Range("H18").Value = Hoja3.Range("H13").Value
Hoja4.Range("H19").Value = Hoja3.Range("H14").Value
Hoja4.Range("H21").Value = Hoja3.Range("H16").Value
Hoja4.Range("H39").Value = Hoja3.Range("H34").Value
Hoja4.Range("H55").Value = Hoja3.Range("H50").Value
Hoja4.Range("H59").Value = Hoja3.Range("H54").Value
Hoja4.Range("H60").Value = Hoja3.Range("H55").Value
End If

End Sub[/CODE]

publicado
  • Autor

He probado con esta macro

Private Sub prova()
Do Until Sheets(1).Select
Range("A1").Value = 2
Loop
MsgBox ("prova")
End Sub[/CODE]

Intentando que si estoy en la hoja 2 cuando se me active la hoja 1 me salga del bucle y me salga el mensaje, pero cuando la ejecuto me sale directamente el mensaje y me salta a la hoja1 sin que la haya clickado.

Algo estoy haciendo mal pero no lo veo...

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.