Código de Exel que deja de funcionar cuando se protege la hoja que lo lleva
Estoy utilizando el siguiente código, cuyo autor es Gustavo Omar Fellay, en año 08, que funciona muy bien en una hoja cuyas celdas contienen formulas en su totalidad. Muchas de dichas formulas contienen referencias a otra hoja del mismo libro. Para que funcione he tenido que incluir en los rangos una celda que tiene un valor =0 introducido a mano. El problema surge cuando protejo la hoja. Entonces deja de funcionar. ¿Podríais modificarlo para que sea efectivo después de efectuar la mencionada protección? Muchísimas gracias
El código es el siguiente:
Private Sub WorkSheet_Calculate()
Dim r As Range
Application.EnableEvents = False
For Each r In Union(Range("C3:C22"), Range("D3:D22"))
If r.Value = 0 Then
r.EntireRow.Hidden = True
Else
r.EntireRow.Hidden = False
End If
Next r
Application.EnableEvents = True
End Sub