Discussion:
Parpadeo de Pantalla al ejecutar Macro
(demasiado antiguo para responder)
Arcano
2008-03-12 14:05:22 UTC
Permalink
ScreenUpdating No Funciona!!!. Tengo varios gráficos y shapes y en una
macro que me cambia el tamaño de excel (abajo) pero al ejecutarla
queda muchos segundos parpadeando y se ve muy poco profesional.
De que manera podría evitar este parpadeo?. El calcular manual no me
funciona.

Agradecido...


Sub EstiloMinimizado()
Dim Barra As CommandBar
With Application
.ScreenUpdating = False
.WindowState = xlNormal
.Left = 80
.Top = 60
.DisplayFormulaBar = False
.DisplayScrollBars = False
.DisplayStatusBar = False
For Each Barra In .CommandBars
Barra.Enabled = False
Next
.ScreenUpdating = True
End With

End Sub
Héctor Miguel
2008-03-12 23:13:10 UTC
Permalink
hola, cristian !
Post by Arcano
ScreenUpdating No Funciona!!!.
Tengo varios graficos y shapes y en una macro que me cambia el tamano de excel (abajo)
pero al ejecutarla queda muchos segundos parpadeando y se ve muy poco profesional.
De que manera podría evitar este parpadeo?. El calcular manual no me funciona.
1) (hasta donde se) existen algunas "areas" dentro de la ventana de la aplicacion que...
NO se ven "afectadas" por el ScreenUpdating para su des/re/congelacion o "refresco"
(como las dock-area donde puedes "estacionar" barras de menus y comandos)

2) si la intencion es deshabilitar (o esconder) las barra de menus (y otras de herramientas entre otros)...
(probablemente) te resultara mas util una instruccion para des/re/aplicar un FullScreen
en lugar de un "bucle" por cada una (y todas) las barras "existentes"
(que a final de cuentas se va a "ejecutar" tantas veces como n_barras existan) :-((

3) para "administrar" las barras de herramientas es "recomendable" considerar usos y costumbres de los (otros) usuarios p.e.
si tienen barras personalizadas (visibles o no) y proveer algun "mecanismo" para volverlas a dejar como al usuario le guste
(este punto tiene mas "tela de donde cortar", asi que despues de probar lo siguiente, comenta lo que creas necesario) ;)

4) a manera de ejemplo, prueba (y adapta, modifica, agrega, ... segun consideres necesario) algo +/- como lo siguiente:
(en un modulo de codigo estandar/general/normal)...

Sub A()
AmpliarVista True
End Sub
Sub B()
AmpliarVista False
End Sub
Sub AmpliarVista(ByVal Mostrar As Boolean)
With Application
.DisplayFullScreen = Mostrar
If Mostrar Then .WindowState = xlNormal: .Left = 80: .Top = 60
If Not Mostrar Then .WindowState = xlMaximized
.CommandBars("worksheet menu bar").Enabled = Not Mostrar
.DisplayFormulaBar = Not Mostrar
.DisplayStatusBar = Not Mostrar
.DisplayScrollBars = Not Mostrar
End With
End Sub

saludos,
hector.

__ el codigo expuesto __
Sub EstiloMinimizado()
Dim Barra As CommandBar
With Application
.ScreenUpdating = False
.WindowState = xlNormal
.Left = 80
.Top = 60
.DisplayFormulaBar = False
.DisplayScrollBars = False
.DisplayStatusBar = False
For Each Barra In .CommandBars
Barra.Enabled = False
Next
.ScreenUpdating = True
End With
End Sub
Arcano
2008-03-13 15:52:46 UTC
Permalink
Hola Hector,
Más que las barras del menú, mi problema son que los graficos y
figuras comienzan a parpadear mientras se ejecuta la macro que
minimiza la pantallla,y en vez de tardar 0.1 segundos (sin graficos ni
imagenes) tarda alrededor de 4 segundos en estar minimizada y que
dejen de parpadear.
Por eso pregunto de que forma evito de que parpadeen los graficos y
las figuras al minimizar la pantalla mediante código.
Gracias ..

Loading...