Celdas combinadas en Worksheet_Change dan error
Mi intención es que en algunas celdas se ponga determinados valores y si no corresponde a aquella celda el valor pues como medida de llamar la atención se ponga el fondo de color rojo y la fuente color negro y se vuelva a la celda del error (quiero intentar evitar el MsgBox). La linea 2 de Worksheet_Change la puse con la intencionalidad de que si le daban a la tecla delete o un espacio quedase la celda con fondo blanco y sin datos.
Hasta ahi me iba bien, pero al hacer las prueba con un campo combinado, X15 esta combinado con Y15 (por cuestion de diseño de la plantilla), me da error 13 no coinciden los tipos ???? No sé que hacerle!
Private Sub Worksheet_Change(ByVal Target As Range)
Target.Interior.ColorIndex = xlNone
If Target.Cells.Count > 1 Or IsEmpty(Target) Or Target.Value = " " Then Exit Sub
If Not Intersect(Target, Range("X15")) Is Nothing Then
Select Case Target.Value
Case "A", "B"
Target.Font.ColorIndex = 3 ' Rojo
Target.Interior.ColorIndex = xlNone ' Nada
Case Else
Target.Font.ColorIndex = 1 ' Nego
Target.Interior.ColorIndex = 3 ' Rojo
Target.Select
End Select
End If
If Not Intersect(Target, Range("E16,F16")) Is Nothing Then
If IsEmpty(Target) Or Target.Value = " " Then Exit Sub
Select Case Target.Value
Case 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Target.Font.ColorIndex = 3 ' Rojo
Target.Interior.ColorIndex = xlNone ' Nada
Case Else
Target.Font.ColorIndex = 1 ' Nego
Target.Interior.ColorIndex = 3 ' Rojo
Target.Select
End Select
End If
If Not Intersect(Target, Range("J23:J34")) Is Nothing Then
Select Case Target.Value
Case 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 31, 32, 33, 34, 35, 41, 42, 43, 44, 45, 51, 52, 53, 54, 55
Target.Interior.ColorIndex = xlNone
Case Else
Target.Interior.ColorIndex = 3
Target.Select
End Select
End If
End Sub
Hasta ahi me iba bien, pero al hacer las prueba con un campo combinado, X15 esta combinado con Y15 (por cuestion de diseño de la plantilla), me da error 13 no coinciden los tipos ???? No sé que hacerle!
Private Sub Worksheet_Change(ByVal Target As Range)
Target.Interior.ColorIndex = xlNone
If Target.Cells.Count > 1 Or IsEmpty(Target) Or Target.Value = " " Then Exit Sub
If Not Intersect(Target, Range("X15")) Is Nothing Then
Select Case Target.Value
Case "A", "B"
Target.Font.ColorIndex = 3 ' Rojo
Target.Interior.ColorIndex = xlNone ' Nada
Case Else
Target.Font.ColorIndex = 1 ' Nego
Target.Interior.ColorIndex = 3 ' Rojo
Target.Select
End Select
End If
If Not Intersect(Target, Range("E16,F16")) Is Nothing Then
If IsEmpty(Target) Or Target.Value = " " Then Exit Sub
Select Case Target.Value
Case 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Target.Font.ColorIndex = 3 ' Rojo
Target.Interior.ColorIndex = xlNone ' Nada
Case Else
Target.Font.ColorIndex = 1 ' Nego
Target.Interior.ColorIndex = 3 ' Rojo
Target.Select
End Select
End If
If Not Intersect(Target, Range("J23:J34")) Is Nothing Then
Select Case Target.Value
Case 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 31, 32, 33, 34, 35, 41, 42, 43, 44, 45, 51, 52, 53, 54, 55
Target.Interior.ColorIndex = xlNone
Case Else
Target.Interior.ColorIndex = 3
Target.Select
End Select
End If
End Sub
1 Respuesta
Respuesta de angelcrisnor
1