Macro para hoja protegida
Hace poco me hiciste una macro estupenda que eliminaba filas con celdas vacías en una columna, si se habilitaba una casilla determinada (concretamente si la celda k38="X"). La macro recalculaba para que si la K38 volviera a estar vacía se mostrasen de nuevo las filas eliminadas anteriormente. La macro era:
Código de hoja 5
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
If Cells(38, 11) = "X" Then
ocultaFilas2 "Cta.Justificativa"
Else
Rows("50:77").EntireRow.Hidden = False
End If
Application.EnableEvents = True
End Sub
CÓDIGO DE MÓDULO 1
Sub ocultaFilas2(queHoja As String)
Dim it As Long
Sheets(queHoja).Select
For it = 50 To 77
If Cells(it, 2) = "" Then Cells(it, 1).EntireRow.Hidden = True
Next it
End Sub
El problema surge cuando se protege la hoja. Necesito protegerla para que se puedan utilizar sólo las celdas en las que hay que meter datos, y me da el mensaje de error: Se ha producido el error '1004' en tiempo de ejecución: no se puede asignar la propiedad Hidden de la clase Range.
Te lo comento por si se puede hacer algo o tengo que renunciar a la protección.
Código de hoja 5
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
If Cells(38, 11) = "X" Then
ocultaFilas2 "Cta.Justificativa"
Else
Rows("50:77").EntireRow.Hidden = False
End If
Application.EnableEvents = True
End Sub
CÓDIGO DE MÓDULO 1
Sub ocultaFilas2(queHoja As String)
Dim it As Long
Sheets(queHoja).Select
For it = 50 To 77
If Cells(it, 2) = "" Then Cells(it, 1).EntireRow.Hidden = True
Next it
End Sub
El problema surge cuando se protege la hoja. Necesito protegerla para que se puedan utilizar sólo las celdas en las que hay que meter datos, y me da el mensaje de error: Se ha producido el error '1004' en tiempo de ejecución: no se puede asignar la propiedad Hidden de la clase Range.
Te lo comento por si se puede hacer algo o tengo que renunciar a la protección.
2 Respuestas
Respuesta
1
Respuesta de Cadipas spain
1
Genial funciona GRACIAS! - Cristina Godoy