Un saludo,
Ya en otro hilo Hector Miguel y otro forista me han brindado una gran
ayuda a este tema.
Les comento que tengo un archivo en excel con aproxidamente 50 páginas
que ejecutan una serie de instrucciones que no deben ser visualizadas
por los usuarios. Para ello he agregado una linea que me han sugerido
aquí, y es:
Application.ScreenUpdating = False
En este sentido la macro que recorre todas las hojas se ejecuta
correctamente sin que el usuario lo vea. Sin embargo, hay dos macros
que aun se ejecutan en todas las hojas y que aun no logro ocultarlas
de la visualización del usuario, inclusive no lo logro incluyendo la
linea anterior.
Las macros ocultan un rango de filas y columnas dependiendo de un
valor en cada celda, y funcionan muy bien; el problema radica en que
el usuario debe esperar entre 10 y 20 segundos antes de ver los
resultados en pantalla.
A continuación estoy pegando el código que tengo para el archivo, no
sé si de algo pueda ser de utilidad.
De antemano, mil gracias por la ayuda que me puedan brindar:
Dim WCiudad As String
Dim WHojaActiva As String
Dim Celda As Range
Dim Columna As Range
Sub CambiarInicio()
'Antes de actualizar debe mostrar las filas si estaban ocultas
Rows("200:500").Select
Selection.EntireRow.Hidden = False
'Antes de actualizar debe mostrar las columnas si estaban ocultas
Columns("Z:DQ").Select
Selection.EntireColumn.Hidden = False
WHojaActiva = ActiveSheet.Name
Application.ScreenUpdating = False
Range("L4").Select
WCiudad = ActiveCell.Value
Worksheets("Inicio").Activate
Range("C4").Select
ActiveCell.Value = WCiudad
ActualizaCiudad
Worksheets(WHojaActiva).Activate
'Dejar la hoja en la opción
Range("L4").Select
ActiveWindow.ScrollColumn = 1
ActiveWindow.ScrollRow = 1
End Sub
Sub ActualizaCiudad()
Dim WNumHojas As Integer
Dim WHojas As Integer
'NUMERO DE HOJAS DEL INFORME
WNumHojas = 44 + 3
'Define donde iniciar en la lista de ciudades general
Worksheets("Inicio").Activate
Range("C4").Select
WCiudad = ActiveCell.Value
'Inicia el recorrido de las hojas para asignar Ciudad
For WHojas = 5 To WNumHojas
Application.ScreenUpdating = False
Worksheets(WHojas).Activate
Range("L4").Select
ActiveCell.Value = WCiudad
'Debe ocultar filas en cada hoja donde cambia Ciudad
OcultarFilas
'Debe ocultar columnas en cada hoja donde cambia Ciudad
OcultarColumnas
Next WHojas
Worksheets("Inicio").Activate
Range("C4").Select
End Sub
Sub OcultarFilas()
For Each Celda In Range("a200:a500")
Celda.Select
If IsNumeric(ActiveCell.Value) Then
Celda.EntireRow.Select
Celda.EntireRow.Hidden = True
Else
Celda.EntireRow.Select
Celda.EntireRow.Hidden = False
End If
Next
'Dejar la hoja en la opción
Range("L4").Select
End Sub
Sub OcultarColumnas()
For Each Celda In Range("Z1:DQ1")
Celda.Select
If IsNumeric(ActiveCell.Value) Then
Celda.EntireColumn.Select
Celda.EntireColumn.Hidden = True
Else
Celda.EntireColumn.Select
Celda.EntireColumn.Hidden = False
End If
Next
'Dejar la hoja en la opción
Range("L4").Select
End Sub
Leer las respuestas