Macro para ocultar y mostrar filas en varias hojas protegidas

13/04/2011 - 09:59 por hilde | Informe spam
¡ Hola !
Soy nueva en este foro y estoy aprendiendo a golpes VB.
Tengo un trabajo en Excel, que tiene 20 hojas, de las cuales 12 contiene información de cada mes. En cada una de ellas hay filas con valores iguales a cero. Bien, la hoja la tengo protegida para que no sean modificadas ciertas celdas por el usuario que ingresa datos, y lo que quiero es que al imprimir la hoja se oculten las filas con valor cero y luego se vuelvan a mostrar.
Vi una respuesta que dió Héctor Miguel a René, en Mayo de 2005, pero a mi no me ha funcionado.
Por favor, me pueden ayudar a descubrir dónde está el error, porque ya estoy verde.
Gracias
Mis códigos son:

Private Sub Workbook_Open()
Dim Hoja As Worksheet
For Each Hoja In Worksheets
Hoja.Protect _
Password:="123", UserInterfaceOnly:=True
End Sub

Sub OcultarFilas()
Application.ScreenUpdating = False
Dim Celda As Range
For Each Celda In Range("k1:k101")
Celda.EntireRow.Hidden = (Celda = 0 Or Celda = "")
Next
End Sub

Sub MostrarFilas()
Range("k1:k101").EntireRow.Hidden = False
End Sub

Si la hoja no está protegida funciona, aunque se tarda al ocultar las filas y al mostrarla.
Cuando la protejo y darle click al botón ocultar, se pone en amarillo :
Celda.EntireRow.Hidden = (Celda = 0 Or Celda = "")

Al darle click al botón Mostrar se pone en amarillo:

Range("k1:k101").EntireRow.Hidden = False

Podrían decirme el código para imprimir (?)
Mil gracias por su atención
 

Leer las respuestas

#1 jalejop
13/04/2011 - 16:07 | Informe spam
Hola Hilde,

Según veo, cada que abres el libro se protegen todas las hojas,
si el proceso le funciona cuando las hojas no están bloqueadas,
intenta desproteger la hoja antes de ocultar las filas y una vez estén
ocultas la vuelves a proteger, es decir,

Sub OcultarFilas()
Application.ScreenUpdating = False
Dim Celda As Range

ActiveSheet.Unprotect "contraseña"

For Each Celda In Range("k1:k101")
Celda.EntireRow.Hidden = (Celda = 0 Or Celda = "")
Next

ActiveSheet.Protect "contraseña"


End Sub

Saludos

Juan Alejandro


On 13 abr, 02:59, hilde wrote:
Mostrar la cita

Preguntas similares