Macro para comparar 2 rangos y mover la celda según condición

Necesito una macro que compare el rango desde la celda A2 hasta la ultima celda con datos de la columna A, con el rango desde la celda B2 hasta la ultima celda con datos de la columna B. En la celda E1 tengo un nombre. Si el valor en el rango de la columna B es igual al nombre de la celda E1 y diferente del valor en el rango de la columna A, entonces se debe mover ese nombre de la columna B a la columna A, en la misma fila.

2 Respuestas

Respuesta
1

Prueba con esto

Sub buscar_copiar()
Set h1 = Sheets("Hoja1")
For i = 2 To h1.Range("B" & Rows.Count).End(xlUp).Row
Set r = h1.Cells(i, "B")
Set b = r.Find(h1.[E1], lookat:=xlWhole)
    If Not b Is Nothing Then
         h1.Cells(i, "A") = h1.Cells(b.Row, "B")
    End If
Next i
MsgBox "fin"
End Sub

valora la respuesta para finalizar saludos!

Funciono muy bien, pero dejo en la columna B el valor copiado, la idea es que lo mueva, es decir que lo pase de la columna B a la A y lo borre de la columna B. 

Te paso la macro actualizada

Sub buscar_copiar()
Set h1 = Sheets("Hoja1")
For i = 2 To h1.Range("A" & Rows.Count).End(xlUp).Row
Set r = h1.Cells(i, "B")
Set b = r.Find(h1.[E1], lookat:=xlWhole)
    If Not b Is Nothing Then
         h1.Cells(i, "A") = h1.Cells(b.Row, "B")
         h1.Cells(b.Row, "B") = ""
    End If
Next i
MsgBox "fin"
End Sub

valora la respuesta como excelente para finalizar saludos!

Respuesta

Quizás te sirva este ejemplo que recorre la columna a comparando con b y pegando en otra hoja

https://youtu.be/Rac3rYG9Jqs

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas