Esconder filas excel según valor
Tengo el siguiente macro en un excel:
Sub esconderfilas()
If Range("m19").Value = "0" Then
Rows("29:30").EntireRow.Hidden = True ' Si pone None oculta
Else
Rows("29:30").EntireRow.Hidden = False ' Si no lo pone las desoculta.
End If
If Range("m19").Value = "0" Then
Rows("40").EntireRow.Hidden = True ' Si pone None oculta
Else
Rows("40").EntireRow.Hidden = False ' Si no lo pone las desoculta.
End If
End Sub
El problema que tengo es que no lo ejecuta de forma automática, he tenido que ponerle un botón para que aplique el macro y me encuentro con otro problema, que como la hoja donde se tiene que aplicar está protegida, al darle al botón me sale una ventanita Microsoft Visual Basic para Aplicaciones X400 y no lo hace. Me toca dejarla sin proteger y no es posible dejar esa hoja desprotegida.
¿Alguna solución?