Saltar al contenido

Macro ocultar filas muy lenta

publicado

Amigos tengo la siguiente macro:

Sub Ocultar()

Dim r As Range

Application.ScreenUpdating = False

ActiveSheet.Unprotect

Rows("21:500").Select

Selection.EntireRow.Hidden = False

For Each r In Range("A21:A500")

If r = 1 Then r.EntireRow.Hidden = True

Next r

Application.ScreenUpdating = True

End Sub

He probado distintas formas para que queda mas rápida porque es demasiado lenta, he hecho por ejemplo ciclo for, la he separado en distintos rangos, he llamado con otra macro los distintos rangos, pero nada, nose como dejarla mas eficiente. ayuda amigos muchas gracias

Featured Replies

publicado

prueba colocando al inicio de la macro esto

Application.Calculation = xlCalculationManual

y luego al final esto

Application.Calculation = xlCalculationAutomatic

a ver si mejora

publicado

pudieras probar asi tambien

Sub Ocultar()
Dim r As Range
Dim rTodo As Range

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
ActiveSheet.Unprotect

Rows("21:500").Select
Selection.EntireRow.Hidden = False
For Each r In Range("A21:A500")
If r = 1 Then
If rTodo Is Nothing Then
Set rTodo = r
Else
Set rTodo = Union(rTodo, r)
End If
End If
Next r

rTodo.EntireRow.Hidden = True

Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub[/CODE]

publicado
  • Autor

Muchas gracias bigpretoman, me funciona de maravilla

Archivado

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