Formato condicional
Hola Fernando: he utilizado el código de más abajo para crear varios casos de formato condicional que necesito. Sin embargo, el problema que tengo es que habiendo determinado un rango de datos, ej ("u16:u1035") si yo por ejemplo en excel selecciono varias celdas dentro de ese rango, y borro el contenido de ellas, o copio varias celdas y las pego dentro del rango ese también, me tira el siguiente error " Se ha producido el error 13 en tiempo de ejecución. No coincide los tipos"
De alli si me voy a depurar, me remite a la siguiente línea: Select Case UCase(Trim(Target.Value))
Es como que tengo que borrar o copiar los datos que tengo en excel de uno a uno, porque si hago todo junto me da el error que te comentaba. No se si es porque tendría que tener otra condición el rango de datos, o si hace falta otra función. El área de trabajo donde aplica el formato condicional es bastante grande, digamos de A:1 a M:401.
Espero que me puedas ayudar, gracias!
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Set Relcell = Range("u16:u1035")
If Not Application.Intersect(Relcell, Range(Target.Address(False, False))) Is Nothing Then
Application.EnableEvents = False
Select Case UCase(Trim(Target.Value))
Case "AZUL"
Target.Interior.ColorIndex = 5
Case "VERDE"
Target.Interior.ColorIndex = 4
Case "BLANCO"
Target.Interior.ColorIndex = 2
Case "ROJO"
Target.Interior.ColorIndex = 3
Case "AMARILLO"
Target.Interior.ColorIndex = 6
Case "NARANJA"
Target.Interior.ColorIndex = 45
Case Else
Target.Interior.ColorIndex = xlNone
End Select
Application.EnableEvents = True
End If
End Sub
De alli si me voy a depurar, me remite a la siguiente línea: Select Case UCase(Trim(Target.Value))
Es como que tengo que borrar o copiar los datos que tengo en excel de uno a uno, porque si hago todo junto me da el error que te comentaba. No se si es porque tendría que tener otra condición el rango de datos, o si hace falta otra función. El área de trabajo donde aplica el formato condicional es bastante grande, digamos de A:1 a M:401.
Espero que me puedas ayudar, gracias!
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Set Relcell = Range("u16:u1035")
If Not Application.Intersect(Relcell, Range(Target.Address(False, False))) Is Nothing Then
Application.EnableEvents = False
Select Case UCase(Trim(Target.Value))
Case "AZUL"
Target.Interior.ColorIndex = 5
Case "VERDE"
Target.Interior.ColorIndex = 4
Case "BLANCO"
Target.Interior.ColorIndex = 2
Case "ROJO"
Target.Interior.ColorIndex = 3
Case "AMARILLO"
Target.Interior.ColorIndex = 6
Case "NARANJA"
Target.Interior.ColorIndex = 45
Case Else
Target.Interior.ColorIndex = xlNone
End Select
Application.EnableEvents = True
End If
End Sub
1 respuesta
Respuesta de Elsa Matilde
1
