Ocultamiento de menús - Pantalla completa

31/05/2004 - 16:56 por Adriano DAmbra | Informe spam
Hola a todos, he visto un método para hacer que Excel pase a pantalla
completa pero la verdad que el efecto de minimizar-maximizar no me gusta
para nada. Y aparte tiene el problema que al minimizar y maximizar otra vez
aparece visible la barra de fórmulas.

Estuve intentando por este lado pero queda un código con bastantes
limitaciones y sobre todo hay que estar trabajando con la barra de menú (que
no me deja ocultarla).

¿Se le ocurre algo mejor a alguien? De paso otra cosa que no pude es
utilizar un For each control para ocultar los elementos del Menú en lugar de
ocultarlos uno por uno. ¿Cómo sería la forma correcta? (excluyendo un obvio
for con un indice)

Saludos.
Adriano D'Ambra
Expert MOUS - Analista en Informática
Coord. de Capacitación Informática
Dpto. de Informática
Universidad FASTA
-
-


Nota: Se llama a MostrarTodo desde el Activate del libro con True como
parámetro

Sub OcultaTodasMenos(NombreHoja)
'Oculta todas las hojas menos la que sea necesaria
Dim HOJA As Worksheet

Sheets(NombreHoja).Visible = True
Sheets(NombreHoja).Select
For Each HOJA In Sheets
If UCase(HOJA.Name) <> UCase(NombreHoja) Then HOJA.Visible = False
Next HOJA
Sheets(NombreHoja).Select
End Sub

Sub MuestraTodas()
Dim HOJA As Worksheet

For Each HOJA In Sheets
HOJA.Visible = True
Next HOJA
End Sub

Sub MostrarTodo(ByVal Mostrar As Boolean)
'Dim MiControl As CommandBarControl

With Application
.ScreenUpdating = False
'.DisplayFullScreen = Not Mostrar
.DisplayScrollBars = Mostrar
.DisplayFormulaBar = Mostrar
.DisplayStatusBar = Mostrar
'.WindowState = xlMinimized
'.Visible = Mostrar
'.WindowState = xlMaximized
.CommandBars("Drawing").Visible = Mostrar
.CommandBars("Formatting").Visible = Mostrar
.CommandBars("Standard").Visible = Mostrar
'If Mostrar Then
' .CommandBars("Worksheet Menu Bar").Controls(1).Delete
'Else
' .CommandBars("Worksheet Menu Bar").Controls.Add
Type:=msoControlButton, ID:u2, Before:=1
'End If

'For Each MiControl In .CommandBars("Worksheet Menu Bar")
' MiControl.Visible = Mostrar
'Next MiControl
.CommandBars("Worksheet Menu Bar").Controls(1).Visible = Mostrar
.CommandBars("Worksheet Menu Bar").Controls(2).Visible = Mostrar
.CommandBars("Worksheet Menu Bar").Controls(3).Visible = Mostrar
.CommandBars("Worksheet Menu Bar").Controls(4).Visible = Mostrar
.CommandBars("Worksheet Menu Bar").Controls(5).Visible = Mostrar
.CommandBars("Worksheet Menu Bar").Controls(6).Visible = Mostrar
.CommandBars("Worksheet Menu Bar").Controls(7).Visible = Mostrar
.CommandBars("Worksheet Menu Bar").Controls(8).Visible = Mostrar
.CommandBars("Worksheet Menu Bar").Controls(9).Visible = Mostrar
.CommandBars("Worksheet Menu Bar").Controls(10).Visible = Mostrar
End With
End Sub

Preguntas similare

Leer las respuestas

#1 Adriano DAmbra
31/05/2004 - 22:00 | Informe spam
Encontré un mejor método. Espero que les sirva.
Saludos.

Sub EntornoNormal(ByVal Mostrar As Boolean)
Application.CommandBars("Formatting").Visible = Mostrar
Application.CommandBars("Standard").Visible = Mostrar
Application.CommandBars.ActiveMenuBar.Enabled = Mostrar
Application.CommandBars.ActiveMenuBar.Visible = Mostrar
With ActiveWindow
.DisplayHeadings = Mostrar
.DisplayWorkbookTabs = Mostrar
End With
With Application
.ShowStartupDialog = Mostrar
.DisplayFormulaBar = Mostrar
.DisplayStatusBar = Mostrar
.ShowWindowsInTaskbar = Mostrar
End With
End Sub


"Adriano D'Ambra" escribió en el mensaje
news:
Hola a todos, he visto un método para hacer que Excel pase a pantalla
completa pero la verdad que el efecto de minimizar-maximizar no me gusta
para nada. Y aparte tiene el problema que al minimizar y maximizar otra


vez
aparece visible la barra de fórmulas.

Estuve intentando por este lado pero queda un código con bastantes
limitaciones y sobre todo hay que estar trabajando con la barra de menú


(que
no me deja ocultarla).

¿Se le ocurre algo mejor a alguien? De paso otra cosa que no pude es
utilizar un For each control para ocultar los elementos del Menú en lugar


de
ocultarlos uno por uno. ¿Cómo sería la forma correcta? (excluyendo un


obvio
for con un indice)

Saludos.
Adriano D'Ambra
Expert MOUS - Analista en Informática
Coord. de Capacitación Informática
Dpto. de Informática
Universidad FASTA


Nota: Se llama a MostrarTodo desde el Activate del libro con True como
parámetro

Sub OcultaTodasMenos(NombreHoja)
'Oculta todas las hojas menos la que sea necesaria
Dim HOJA As Worksheet

Sheets(NombreHoja).Visible = True
Sheets(NombreHoja).Select
For Each HOJA In Sheets
If UCase(HOJA.Name) <> UCase(NombreHoja) Then HOJA.Visible = False
Next HOJA
Sheets(NombreHoja).Select
End Sub

Sub MuestraTodas()
Dim HOJA As Worksheet

For Each HOJA In Sheets
HOJA.Visible = True
Next HOJA
End Sub

Sub MostrarTodo(ByVal Mostrar As Boolean)
'Dim MiControl As CommandBarControl

With Application
.ScreenUpdating = False
'.DisplayFullScreen = Not Mostrar
.DisplayScrollBars = Mostrar
.DisplayFormulaBar = Mostrar
.DisplayStatusBar = Mostrar
'.WindowState = xlMinimized
'.Visible = Mostrar
'.WindowState = xlMaximized
.CommandBars("Drawing").Visible = Mostrar
.CommandBars("Formatting").Visible = Mostrar
.CommandBars("Standard").Visible = Mostrar
'If Mostrar Then
' .CommandBars("Worksheet Menu Bar").Controls(1).Delete
'Else
' .CommandBars("Worksheet Menu Bar").Controls.Add
Type:=msoControlButton, ID:u2, Before:=1
'End If

'For Each MiControl In .CommandBars("Worksheet Menu Bar")
' MiControl.Visible = Mostrar
'Next MiControl
.CommandBars("Worksheet Menu Bar").Controls(1).Visible = Mostrar
.CommandBars("Worksheet Menu Bar").Controls(2).Visible = Mostrar
.CommandBars("Worksheet Menu Bar").Controls(3).Visible = Mostrar
.CommandBars("Worksheet Menu Bar").Controls(4).Visible = Mostrar
.CommandBars("Worksheet Menu Bar").Controls(5).Visible = Mostrar
.CommandBars("Worksheet Menu Bar").Controls(6).Visible = Mostrar
.CommandBars("Worksheet Menu Bar").Controls(7).Visible = Mostrar
.CommandBars("Worksheet Menu Bar").Controls(8).Visible = Mostrar
.CommandBars("Worksheet Menu Bar").Controls(9).Visible = Mostrar
.CommandBars("Worksheet Menu Bar").Controls(10).Visible = Mostrar
End With
End Sub




Respuesta Responder a este mensaje
#2 Héctor Miguel
01/06/2004 - 02:46 | Informe spam
hola, Adriano !

tratando de 'acoplar' estos comentarios a ambos mensajes ;)

Adriano D'Ambra escribio en el mensaje {1}
... he visto un metodo para hacer que Excel pase a pantalla completa pero ...


1 > ... efecto de minimizar-maximizar no me gusta para nada.
2 > ... aparte tiene el problema que al minimizar y maximizar otra vez aparece ... la barra de formulas.
3 > ... intentando ... hay que estar trabajando con la barra de menu (que no me deja ocultarla) [...]
4 > Nota: Se llama a MostrarTodo desde el Activate del libro con True como parametro [sigue codigo...]

Adriano D'Ambra escribio en el mensaje {2}




5 >> Encontre un mejor metodo. Espero que les sirva. [sigue codigo...]

1.- la accion de minimizar -> volver 'invisible' a la aplicacion -> maximizar...
es requisito [indispensable] para 'ocultar' [tambien] =>la barra de titulo de la aplicacion< [si fuera necesario ampliar 'al maximo' el 'campo visual' de la hoja de trabajo]
2.- la 're-aparicion' de la barra de formulas [parece que] es parte de los comportamientos 'extraños' del 'FullScreen' :(
[en este caso, es mejor aplicar un procedimiento como el que apuntas en tu segundo mensaje]
=>dejando 'fuera de la accion'<= a la barra de titulo de la aplicacion :(
3.- en cuanto a 'trabajar' con la barra de menus... [como ya lo has averiguado] es 'solo' cuestion de 'inhabilitarla' ;)
'pero'... teniendo la precaucion de 're-hablitarla' =>antes de salir<= de 'tu' aplicacion <=OJO
=>NO es de las caracteristicas que se restablecen 'por si solas'<4.- [creo que] el parametro [True o False] 'debiera' ser indicado al contrario: False [en el evento _Activate] ;)
5.- solo algunos comentarios acerca de [y tratando de 'aportar algo a'] este nuevo metodo.
a) en cuanto a los menus... [como te mencione anteriormente] es 'solo' cuestion de 'inhabilitarlos'
b) en cuanto a las barras de herramientas...
=>solo<= estas 'afectando' las 'normales' [estandar y formato] por lo que...
si el usuario 'usa otras'... [ni las 'tocas'] y SI lo vas a 'obligar' a que 'las vea' [al 'regresar' a SU libro] :((
c) por lo 'tocante' a los 'headings' y los 'workbooktabs'... =>es 'similar' al punto anterior< los 'tabs' SON 'parte de' cada libro y los 'headings' SON 'parte de' cada hoja
[al menos, 'en teoria'] =>se 'graban'<= [en su 'estado actual'] como parte de cada libro/hoja.
[nuevamente] SI el usuario lo/s mantiene oculto/s =>en SU libro 'normal'<=... TU se los 'muestras' de nuevo :((
d) [valdria la pena revisar en la ayuda que efectos tienen 'realmente' por lo que respecta a...]
- 'showwindowsintaskbar' ['disponible' a partir de excel 2000]
- 'showstartpdialog' ['disponible' a partir de excel 2002]

para 'dejar afinados' los puntos 5.a y 5.b [yo haria lo siguiente]...
Sub EntornoNormal(ByVal Mostrar As Boolean)
Dim Barra As CommandBar
With Application
For Each Barra In .CommandBars
Barra.Enabled = Mostrar
Next
.DisplayFormulaBar = Mostrar
.DisplayScrollBars = Mostrar
.DisplayStatusBar = Mostrar
End With
End Sub

[dejo a tu criterio lo de los 'headings' y los 'workbooktabs' =>que son 'opcion' de cada usuario<=] ;)
¿comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#3 Adriano DAmbra
01/06/2004 - 22:53 | Informe spam
Gracias Héctor por tus acotaciones.
Te comento sobre los puntos que incluiste:
1. De acuerdo, pero en mi caso me quedo con el 2o método.
3. También de acuerdo. En el BeforeClose del Libro hay que hacer que vuelva
todo a la normalidad.
4. Cierto, en el Activate me parece mejor.
5. Sí ya había pensado esto de las barras normales, por lo que me pareció
fantástico este método tuyo. Funciona perfecto.
Voy a revisar el comportamiento de las etiquetas y encabezados.

Un saludo.

Por ahora este sería el resumen del código. (lo que hago también es mostrar
la hoja que me interesa)

Sub MostrarTodo(ByVal Mostrar As Boolean)
Dim Barra As CommandBar

With Application
.ScreenUpdating = False
.ShowStartupDialog = Mostrar
For Each Barra In .CommandBars
Barra.Enabled = Mostrar
Next
.DisplayFormulaBar = Mostrar
.DisplayScrollBars = Mostrar
.DisplayStatusBar = Mostrar
.CommandBars.ActiveMenuBar.Enabled = Mostrar
End With

With ActiveWindow
.DisplayHeadings = Mostrar
.DisplayWorkbookTabs = Mostrar
End With
End Sub

Sub OcultaTodasMenos(NombreHoja)
Dim HOJA As Worksheet

Sheets(NombreHoja).Visible = True
Sheets(NombreHoja).Select
For Each HOJA In Sheets
If UCase(HOJA.Name) <> UCase(NombreHoja) Then HOJA.Visible = False
Next HOJA
Sheets(NombreHoja).Select
End Sub

Sub MuestraTodas()
Dim HOJA As Worksheet

For Each HOJA In Sheets
HOJA.Visible = True
Next HOJA
End Sub






"Héctor Miguel" escribió en el mensaje
news:
hola, Adriano !

tratando de 'acoplar' estos comentarios a ambos mensajes ;)

> Adriano D'Ambra escribio en el mensaje {1}
> ... he visto un metodo para hacer que Excel pase a pantalla


completa pero ...
1 > ... efecto de minimizar-maximizar no me gusta para nada.
2 > ... aparte tiene el problema que al minimizar y maximizar otra vez


aparece ... la barra de formulas.
3 > ... intentando ... hay que estar trabajando con la barra de menu


(que no me deja ocultarla) [...]
4 > Nota: Se llama a MostrarTodo desde el Activate del libro con True


como parametro [sigue codigo...]

>> Adriano D'Ambra escribio en el mensaje {2}
5 >> Encontre un mejor metodo. Espero que les sirva. [sigue codigo...]

1.- la accion de minimizar -> volver 'invisible' a la aplicacion ->


maximizar...
es requisito [indispensable] para 'ocultar' [tambien] =>la barra de


titulo de la aplicacion<> [si fuera necesario ampliar 'al maximo' el 'campo visual' de la hoja
de trabajo]
2.- la 're-aparicion' de la barra de formulas [parece que] es parte de los


comportamientos 'extraños' del 'FullScreen' :(
[en este caso, es mejor aplicar un procedimiento como el que apuntas


en tu segundo mensaje]
=>dejando 'fuera de la accion'<= a la barra de titulo de la


aplicacion :(
3.- en cuanto a 'trabajar' con la barra de menus... [como ya lo has


averiguado] es 'solo' cuestion de 'inhabilitarla' ;)
'pero'... teniendo la precaucion de 're-hablitarla' =>antes de


salir<= de 'tu' aplicacion <=OJO
=>NO es de las caracteristicas que se restablecen 'por si solas'<> 4.- [creo que] el parametro [True o False] 'debiera' ser indicado al


contrario: False [en el evento _Activate] ;)
5.- solo algunos comentarios acerca de [y tratando de 'aportar algo a']


este nuevo metodo.
a) en cuanto a los menus... [como te mencione anteriormente] es 'solo'


cuestion de 'inhabilitarlos'
b) en cuanto a las barras de herramientas...
=>solo<= estas 'afectando' las 'normales' [estandar y formato] por


lo que...
si el usuario 'usa otras'... [ni las 'tocas'] y SI lo vas a


'obligar' a que 'las vea' [al 'regresar' a SU libro] :((
c) por lo 'tocante' a los 'headings' y los 'workbooktabs'... =>es


'similar' al punto anterior<> los 'tabs' SON 'parte de' cada libro y los 'headings' SON 'parte de'
cada hoja
[al menos, 'en teoria'] =>se 'graban'<= [en su 'estado actual'] como


parte de cada libro/hoja.
[nuevamente] SI el usuario lo/s mantiene oculto/s =>en SU libro


'normal'<=... TU se los 'muestras' de nuevo :((
d) [valdria la pena revisar en la ayuda que efectos tienen 'realmente'


por lo que respecta a...]
- 'showwindowsintaskbar' ['disponible' a partir de excel 2000]
- 'showstartpdialog' ['disponible' a partir de excel 2002]

para 'dejar afinados' los puntos 5.a y 5.b [yo haria lo siguiente]...
Sub EntornoNormal(ByVal Mostrar As Boolean)
Dim Barra As CommandBar
With Application
For Each Barra In .CommandBars
Barra.Enabled = Mostrar
Next
.DisplayFormulaBar = Mostrar
.DisplayScrollBars = Mostrar
.DisplayStatusBar = Mostrar
End With
End Sub

[dejo a tu criterio lo de los 'headings' y los 'workbooktabs' =>que son


'opcion' de cada usuario<=] ;)
¿comentas?
saludos,
hector.

Respuesta Responder a este mensaje
#4 Adriano DAmbra
01/06/2004 - 22:58 | Informe spam
Agregando a lo que hablábamos con Héctor habría que agregar este código en
el módulo del Workbook. Para que cuando uno abre otro libro o pasa a otro
libro abierto, éste se vea normalmente.

Saludos.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
OcultaTodasMenos ("MenuPpal")
MostrarTodo True
End Sub

Private Sub Workbook_Activate()
Application.ScreenUpdating = False
Worksheets("MenuPpal").Select
MostrarTodo False
End Sub

Private Sub Workbook_Deactivate()
Application.ScreenUpdating = False
MostrarTodo True
End Sub





"Héctor Miguel" escribió en el mensaje
news:
hola, Adriano !

tratando de 'acoplar' estos comentarios a ambos mensajes ;)

> Adriano D'Ambra escribio en el mensaje {1}
> ... he visto un metodo para hacer que Excel pase a pantalla


completa pero ...
1 > ... efecto de minimizar-maximizar no me gusta para nada.
2 > ... aparte tiene el problema que al minimizar y maximizar otra vez


aparece ... la barra de formulas.
3 > ... intentando ... hay que estar trabajando con la barra de menu


(que no me deja ocultarla) [...]
4 > Nota: Se llama a MostrarTodo desde el Activate del libro con True


como parametro [sigue codigo...]

>> Adriano D'Ambra escribio en el mensaje {2}
5 >> Encontre un mejor metodo. Espero que les sirva. [sigue codigo...]

1.- la accion de minimizar -> volver 'invisible' a la aplicacion ->


maximizar...
es requisito [indispensable] para 'ocultar' [tambien] =>la barra de


titulo de la aplicacion<> [si fuera necesario ampliar 'al maximo' el 'campo visual' de la hoja
de trabajo]
2.- la 're-aparicion' de la barra de formulas [parece que] es parte de los


comportamientos 'extraños' del 'FullScreen' :(
[en este caso, es mejor aplicar un procedimiento como el que apuntas


en tu segundo mensaje]
=>dejando 'fuera de la accion'<= a la barra de titulo de la


aplicacion :(
3.- en cuanto a 'trabajar' con la barra de menus... [como ya lo has


averiguado] es 'solo' cuestion de 'inhabilitarla' ;)
'pero'... teniendo la precaucion de 're-hablitarla' =>antes de


salir<= de 'tu' aplicacion <=OJO
=>NO es de las caracteristicas que se restablecen 'por si solas'<> 4.- [creo que] el parametro [True o False] 'debiera' ser indicado al


contrario: False [en el evento _Activate] ;)
5.- solo algunos comentarios acerca de [y tratando de 'aportar algo a']


este nuevo metodo.
a) en cuanto a los menus... [como te mencione anteriormente] es 'solo'


cuestion de 'inhabilitarlos'
b) en cuanto a las barras de herramientas...
=>solo<= estas 'afectando' las 'normales' [estandar y formato] por


lo que...
si el usuario 'usa otras'... [ni las 'tocas'] y SI lo vas a


'obligar' a que 'las vea' [al 'regresar' a SU libro] :((
c) por lo 'tocante' a los 'headings' y los 'workbooktabs'... =>es


'similar' al punto anterior<> los 'tabs' SON 'parte de' cada libro y los 'headings' SON 'parte de'
cada hoja
[al menos, 'en teoria'] =>se 'graban'<= [en su 'estado actual'] como


parte de cada libro/hoja.
[nuevamente] SI el usuario lo/s mantiene oculto/s =>en SU libro


'normal'<=... TU se los 'muestras' de nuevo :((
d) [valdria la pena revisar en la ayuda que efectos tienen 'realmente'


por lo que respecta a...]
- 'showwindowsintaskbar' ['disponible' a partir de excel 2000]
- 'showstartpdialog' ['disponible' a partir de excel 2002]

para 'dejar afinados' los puntos 5.a y 5.b [yo haria lo siguiente]...
Sub EntornoNormal(ByVal Mostrar As Boolean)
Dim Barra As CommandBar
With Application
For Each Barra In .CommandBars
Barra.Enabled = Mostrar
Next
.DisplayFormulaBar = Mostrar
.DisplayScrollBars = Mostrar
.DisplayStatusBar = Mostrar
End With
End Sub

[dejo a tu criterio lo de los 'headings' y los 'workbooktabs' =>que son


'opcion' de cada usuario<=] ;)
¿comentas?
saludos,
hector.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida