Fallo de Private Sub en hoja protegida

Estimado Fejoal, te agradecería que pudieras aclararme la siguiente cuestión:
En una hoja protegida tengo el siguiente comando:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("D11") > 0 Then
Range("E11").Interior.ColorIndex = 15
Else
Range("E11").Interior.ColorIndex = xlColorIndexNone
End If
End Sub
Las celdas indicadas no están bloqueadas, pero al intentar modificar la celda D11 aparece lo siguiente:
Error
Se ha producido el error '1004' en tiempo de ejecución:
Imposible asignar la propiedad ColorIndex de la clase Interior.
¿Cómo puedo corregir esto?
Gracias anticipadas por tu ayuda
Saludos

1 respuesta

Respuesta
1
Efectivamente, MS Excel no permite esa acción en una hoja protegida, por lo tanto la forma de resolverlo es hacer que la macro desproteja la hoja, modifique la celda, y restituya la protección.
En tal caso tu código sería:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveSheet.Unprotect "TUCLAVE"
If Range("D11") > 0 Then
Range("E11").Interior.ColorIndex = 15
Else
Range("E11").Interior.ColorIndex = xlColorIndexNone
End If
ActiveSheet.Protect "TUCLAVE" 'DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Bien. En otro orden de cosas, revisaría si el evento correcto es Selección change, ya que estaría ejecutando esta macro cada vez que cambies de celda.
Desde luego que esto depende de lo que quieras hacer pero, me parece que lo correcto sería controlar que si cambió la celda que dispara el cambio de formato (D11) de la celda E11
Si estás de acuerdo usa el evento Change o Calculate con la macro sugerida anteriormente.
Espero que esto te sea útil.
Un abrazo!
Fernando
Estimado Fernando, muchas gracias por tu tiempo, la solución me ha sido válida, he conseguido el funcionamiento deseado pero solo con SelectionChange, con Calculate y con Change me da muchos errores debido a que la hoja tiene muchas fórmulas relacionada en un módulo además de procedimientos de búsqueda de datos en otras hojas.
Tu ayuda me ha sido de gran utilidad.
Me tomo la libertad de enviarte otra preguntita a continuación.
Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas