Mostrar y ocultar hojas v.2

29/01/2007 - 01:03 por Patricio | Informe spam
Hola a todos.

(ya que nadie me dio solucion la primera vez, vuelvo a hacer la pregunta...)

Como puedo hacer para mostrar y ocultar una hoja1, cada vez cambie de
hoja2,
hoja3, hoja4 etc. por ejemplo si estoy en la hoja2 y cambio a la hoja3,
aparesca la hoja1 un par de segundos y luego desaparesca, y si cambio de la 3
a la 4 ó de la 4 a la 2 lo mismo q aparesca la hoja1 y desaparesca, pero q
siempre se mantenga oculta la viñeta. Si alguien sabe como hacerlo, se lo
agradeceria.

Patricio
Santiago-Chile

P.D. Hector Miguel, donde estas.

Preguntas similare

Leer las respuestas

#1 Ivan
29/01/2007 - 01:51 | Informe spam
hola Patricio,

mientras llega Hector Miguel,

prueba a poner en el evento Activate de las hojas alguna instruccion que
haga lo que pides.

Esta es una posibilidad usando Wait, pero quizas te fuera mejor probar con
OnTime, pues wait paraliza una buena parte de los procesos

''en el evento Open de ThisWorkbook ocultas la hoja
Private Sub Workbook_Open()
TuHojaOculta.Visible = xlSheetVeryHidden
End Sub

''en activate de cada hoja llamas a la macro
Private Sub Worksheet_Activate()
Call verHoja(TuHojaOculta)
End Sub

''procedimiento para mostrar la hoja 2 segundos
''(oculta las etiquetas de la hoja, pero tambien las del resto)
Sub verHoja(ByRef hoja As Worksheet)
With hoja
.Visible = xlSheetVisible: .Activate
ActiveWindow.DisplayWorkbookTabs = False
With Application
.EnableEvents = False
.Wait (Now + TimeValue("00:00:02"))
hoja.Visible = xlSheetVeryHidden
.EnableEvents = True
End With
ActiveWindow.DisplayWorkbookTabs = True
End With
End Sub


echale un vistazo, y si quieres comentas

un saludo
Ivan

"Patricio" escribió en el mensaje
news:
Hola a todos.

(ya que nadie me dio solucion la primera vez, vuelvo a hacer la
pregunta...)

Como puedo hacer para mostrar y ocultar una hoja1, cada vez cambie de
hoja2,
hoja3, hoja4 etc. por ejemplo si estoy en la hoja2 y cambio a la hoja3,
aparesca la hoja1 un par de segundos y luego desaparesca, y si cambio de
la 3
a la 4 ó de la 4 a la 2 lo mismo q aparesca la hoja1 y desaparesca, pero q
siempre se mantenga oculta la viñeta. Si alguien sabe como hacerlo, se lo
agradeceria.

Patricio
Santiago-Chile

P.D. Hector Miguel, donde estas.
Respuesta Responder a este mensaje
#2 Ivan
29/01/2007 - 02:09 | Informe spam
hola de nuevo, Patricio

nome habia dado cuenta de que no cambiaba de hoja. Prueba con estas
modificaciones

'.-en un modulo normal

''declaras una variable publica
Public HojaActiva As Worksheet
''procedimiento para mostrar la hoja (hoja=TuHojaOculta)
Sub verHoja(ByRef hoja As Worksheet)
With hoja
.Visible = xlSheetVisible: .Activate
ActiveWindow.DisplayWorkbookTabs = False
With Application
.EnableEvents = False
.Wait (Now + TimeValue("00:00:03"))
hoja.Visible = xlSheetVeryHidden
.EnableEvents = True
End With
ActiveWindow.DisplayWorkbookTabs = True
End With
End Sub

'.-en cada hoja menos en la oculta

Private Sub Worksheet_Activate()
Set HojaActiva = ActiveSheet
Call verHoja( TuHojaOculta)
Application.EnableEvents = False
HojaActiva.Activate
Application.EnableEvents = True
Set HojaActiva = Nothing
End Sub

'.- ne thisworkbook igual que antes

''en el evento Open de ThisWorkbook ocultas la hoja
Private Sub Workbook_Open()
TuHojaOculta.Visible = xlSheetVeryHidden
End Sub

a ver que tal asi

un saludo
Ivan
Respuesta Responder a este mensaje
#3 Ivan
30/01/2007 - 18:34 | Informe spam
hola Patricio

aunque parece que ya se te ha pasado la prisa, si quieres prueba con esto

1.-en el modulo de cada hoja, menos en la que quieres que se muestre

Private Sub Worksheet_Activate()
HojaActiva = ActiveSheet.Name
With Application
.ScreenUpdating = False
.EnableEvents = False
ActiveWindow.DisplayWorkbookTabs = False
With Worksheets("Hoja1"): .Visible = xlSheetVisible: .Activate: End With
.OnTime Now + TimeValue("00:00:02"), "Mostrar2sg"
End With
End Sub

2.- en un modulo normal

Public HojaActiva As String
Sub Mostrar2sg()
ActiveWindow.DisplayWorkbookTabs = True
Worksheets("Hoja1").Visible = xlSheetVeryHidden
Worksheets(HojaActiva).Activate
Application.EnableEvents = True
End Sub

un saludo
Ivan

OJO: si hay opcion de que el procedimiento se cancele antes de acabar los
dos segundos, acuerdate de devolver EnableEvents a True (y las fichas de las
hojas)
Respuesta Responder a este mensaje
#4 Patricio
31/01/2007 - 04:45 | Informe spam
Hola Ivan.
gracias por responder, esta si me sirvio, le estas haciendo el peso a Hector
Miguel

Patricio
Santiago-Chile



"Ivan" escribió:

hola Patricio

aunque parece que ya se te ha pasado la prisa, si quieres prueba con esto

1.-en el modulo de cada hoja, menos en la que quieres que se muestre

Private Sub Worksheet_Activate()
HojaActiva = ActiveSheet.Name
With Application
.ScreenUpdating = False
.EnableEvents = False
ActiveWindow.DisplayWorkbookTabs = False
With Worksheets("Hoja1"): .Visible = xlSheetVisible: .Activate: End With
.OnTime Now + TimeValue("00:00:02"), "Mostrar2sg"
End With
End Sub

2.- en un modulo normal

Public HojaActiva As String
Sub Mostrar2sg()
ActiveWindow.DisplayWorkbookTabs = True
Worksheets("Hoja1").Visible = xlSheetVeryHidden
Worksheets(HojaActiva).Activate
Application.EnableEvents = True
End Sub

un saludo
Ivan

OJO: si hay opcion de que el procedimiento se cancele antes de acabar los
dos segundos, acuerdate de devolver EnableEvents a True (y las fichas de las
hojas)



Respuesta Responder a este mensaje
#5 Ivan
31/01/2007 - 11:52 | Informe spam
hola Patricio

gracias por responder, esta si me sirvio, le estas haciendo el peso a
Hector Miguel



Hector Miguel te lo hubiera resuelto a la 1ª, y de una forma seguro que mil
veces mejor.

No se trata de hacer peso a nadie, en todo caso lo contrario, intentar echar
una mano en lo que uno cree mas o menos saber ( y, por que no, aprender
compartiendo incluso los errores).

El dia que yo pudiera hacerle el peso (cosa que en cualquier caso [creo que]
nunca se me ocurriria hacer con nadie) al actual Hecor Miguel, este estaria
no ya a muchas galaxia de distancia (como actualmente ) sino a varios
universos luz. De hecho, a el le debo la mayor parte de lo poco que se.

GRACIAS Hector Miguel

Un saludo
Ivan
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida