Buscar lista de valores en otra lista

Resulta que tengo una lista de una sola columna cuyos valores tengo que buscar en otra lista mas grande que tengo en otra hoja, esta con dos columnas, la búsqueda es en la segunda columna.

Esto necesitaría hacerlo en la tercera hoja de manera que me mostrara las coincidencias y si es posible en la fila contigua de la hoja 3 (A para las coincidencias, B para este valor) el valor de la primera columna de la hoja2 correspondiente.

Ejemplo

Hoja1

A

B

C

Hoja2

37 B

45 C

57 D

Hoja3

B 37

C 45

1 Respuesta

Respuesta
2

Te mando la solución y sigue mis pasos:

Tenemos los datos como indicas:

En la hoja1 en el rango A1:A3 las letras A, B Y C

En la hoja2 en el rango A1:B3 los datos como los muestras.

En la hoja3 no hay nada.

Ejecuta esta macro y todo listo:

Sub ejemplo()
fila = 1
'por luismondelo
Sheets("hoja2").Select
Range("b1").Select
Do While ActiveCell.Value <> ""
valor = ActiveCell.Value
Set busca = Sheets("hoja1").Range("a1:a100").Find(valor, LookIn:=xlValues, lookat:=xlWhole)
If Not busca Is Nothing Then
Sheets("hoja3").Cells(fila, 1).Value = valor
Sheets("hoja3").Cells(fila, 2).Value = ActiveCell.Offset(0, -1)
fila = fila + 1
End If
ActiveCell.Offset(1, 0).Select
Loop
End Sub

recuerda finalizar

Muchísimas gracias por la rapidísima respuesta.

Solo un detalle, ¿ como seria el código si la lista de la hoja1 tiene desde A1 a A2361 y en la hoja2 desde A1 a A7585 (y B1 a B7585)?

Este sería el código definitivo:

Sub ejemplo()
fila = 1
'por luismondelo
Sheets("hoja2").Select
Range("b1").Select
Do While ActiveCell.Value <> ""
valor = ActiveCell.Value
Set busca = Sheets("hoja1").Range("a1:a" & range("a65000").end(xlup).row).Find(valor, LookIn:=xlValues, lookat:=xlWhole)
If Not busca Is Nothing Then
Sheets("hoja3").Cells(fila, 1).Value = valor
Sheets("hoja3").Cells(fila, 2).Value = ActiveCell.Offset(0, -1)
fila = fila + 1
End If
ActiveCell.Offset(1, 0).Select
Loop
End Sub

recuerda finalizar

Te mando un saludo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas