Buscar datos en una tabla

Hola, necesito hacer una macro, que realice lo siguiente:
Tengo un listado con 40.000 direcciones, tiene 4 columnas, en la col. A aparece dirección, Col.B. Numero, Col.C.tipo, Col. D. Estado.
Luego tengo otro listado, que son las direcciones a buscar, este listado contendrá unas 3.000 direcciones. La idea es que las busque entre las 40.000 y me diga en el listado de las 3.000 el tipo y el estado, ya que este listado solo contiene la dirección y el numero. Tener en cuenta que hay direcciones, que se llaman igual, y lo que cambia es el numero. Esto lo tengo hecho con una fórmula, pero cada vez que aplico un filtro luego tiene que calcular celdas y tarde un par de minutos, así que esto no es cómodo.

1 respuesta

Respuesta
1
Te puedo recomendar 2 cosas, la primera es que le pongas al excel actualizar sólo cuando des F9, para que no esté calculando cada vez, y la segunda es que lo resuelvas con una macro (aunque esto no significa que ya no va a tardar el proceso.
De cualquier modo, lo primero que necesitas es una columna con dato único, que en tu ejemplo podría ser la columna E "calle_núm" donde E2=A2&" "&B2 y la copias para todos.
Copia en una macro el siguiente Sub:
Sub Traer()
Application.ScreenUpdating = False
m_mens = "ACTUALIZAR EL LISTADO"
M_TIT = "CONFIRMAR"
goon = MsgBox(m_mens, vbOKCancel, M_TIT)
If goon = vbOK Then
Sheets("hoja2").Select
Range("E1").Select
Posicion = 1
While ActiveCell.Value <> ""
direccion = ActiveCell.Value
Sheets("hoja1").Select
Range("E1").Select
While ActiveCell.Value <> ""
If ActiveCell.Value = direccion Then
Sheets("hoja2").Select
comentario = ActiveCell.Offset(0, -2).Value
comentario = ActiveCell.Offset(0, -1).Value
Sheets("hoja1").Select
ActiveCell.Offset(0, -2) = comentario
ActiveCell.Offset(0, -1) = comentario
End If
ActiveCell.Offset(1, 0).Range("E1").Select
Wend
Sheets("hoja2").Select
Posicion = Posicion + 1
Range("E1").Select
ActiveCell.Offset(Posicion - 1, 0).Range("E1").Select
Wend
M_TIT = "PROCESO TERMINADO"
m_mens = "YA ESTA"
MsgBox m_mens, vbInformation, M_TIT
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas