Validación en función del color de la celda
Hola,
Tengo una hoja excel y quiero hacer una validación para que sólo se pueda escribir sobre celdas que poseen un fondo amarillo.
La idea es que al perder el foco salte un mensaje informativo que borre el contenido de la celda escrita y un mensaje que diga: "Solo puede escribir en celdas de fondo amarillo".
He intentado poner códigos en los eventos 'SheetChange' y 'SheetSelectionChange' pero la validación no salta al perder el foco sino que tiene el siguiente comportamiento:
- Si relleno una celda amarilla y, después pincho, sobre otra amarilla: No me muestra mensaje de error.
- Si relleno una celda blanca y, después pincho, sobre otra amarilla: No me muestra mensaje de error y DEBERÍA HACERLO
- Si relleno una celda blanca y, después pincho, sobre otra blanca: Si me muestra mensaje de error.
Los códigos que he intentado son:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Selection.Interior.ColorIndex <> 6 Then
MsgBox "Sólo debe rellenar las celdas de color amarillo"
End If
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Selection.Interior.ColorIndex <> 6 Then
MsgBox "Sólo debe rellenar las celdas de color amarillo"
End If
End Sub
Muchas gracias,
Tengo una hoja excel y quiero hacer una validación para que sólo se pueda escribir sobre celdas que poseen un fondo amarillo.
La idea es que al perder el foco salte un mensaje informativo que borre el contenido de la celda escrita y un mensaje que diga: "Solo puede escribir en celdas de fondo amarillo".
He intentado poner códigos en los eventos 'SheetChange' y 'SheetSelectionChange' pero la validación no salta al perder el foco sino que tiene el siguiente comportamiento:
- Si relleno una celda amarilla y, después pincho, sobre otra amarilla: No me muestra mensaje de error.
- Si relleno una celda blanca y, después pincho, sobre otra amarilla: No me muestra mensaje de error y DEBERÍA HACERLO
- Si relleno una celda blanca y, después pincho, sobre otra blanca: Si me muestra mensaje de error.
Los códigos que he intentado son:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Selection.Interior.ColorIndex <> 6 Then
MsgBox "Sólo debe rellenar las celdas de color amarillo"
End If
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Selection.Interior.ColorIndex <> 6 Then
MsgBox "Sólo debe rellenar las celdas de color amarillo"
End If
End Sub
Muchas gracias,
1 respuesta
Respuesta de mrtool
1