Compara código ingresado en celda con otra celda y colorear celda anexa.

Llevo un par de días tratando de crear una planilla y formulario en donde pueda comprobar automáticamente que dos celdas contiene la misma información y colorear la celda contigua al valor agregado.

La idea es que por ejemplo en la celda B2 yo ingreso el valor 56789NH (variable patrón), para luego en la columna C ingresar los datos manualmente que contienen o no el valor 56789NH. Lo ideal sería que al dar enter luego de ingresar en la celda C1 el valor L56789NH000987, me identifique que el valor 56789NH y me coloree la celda D1 con color verde.

Por el contrario, si el valor ingresado en C2 es L56789NM000234, me coloree automaticamente la celda D2 de color rojo ya que el valor no corresponde con el patron (56789NH vs 56789NM).

¿Es posible?

es intentado con Private Sub Worksheet_Change(ByVal Target As Excel.Range) pero no puedo especificar que me compare con al celda B2. Además he tratado de crear macros con formato condicional con la fórmula =Y($B$2<>"";ESERROR(COINCIDIR("*"&$B$2&"*";C1;0))) y con la fórmula =COINCIDIR("*"&$B$2&"*";C1;0), pero lamentablemente no se activan automaticamente las celdas de la columna D.

Por último, encontré un ejemplo en la ayuda de excel:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) 
    If Target.Column = 2 Then 
        ThisRow = Target.Row 
        If Target.Value = 100 Then 
            Range("D" & ThisRow).Interior.ColorIndex = 4 
        Else 
            Range("D" & ThisRow).Interior.ColorIndex = 3 
        End If 
    End If 
End Sub

Pero no he sabido hacer que en vez de buscar que el valor sea igual a 100 sea igual al valor que yo ingrese en B".

1 Respuesta

Respuesta
1

Lo puedes hacer así:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 3 Then
        ThisRow = Target.Row
        vvalor = Target.Value
        vcomp = Cells(1, 2).Value
        vresp = InStr(1, vvalor, vcomp, 1)
        If vresp > 0 Then
            Range("D" & ThisRow).Interior.ColorIndex = 4
        Else
            Range("D" & ThisRow).Interior.ColorIndex = 3
        End If
    End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas