Excel. Comparar 2 columnas de diferentes hojas y copiar lineas completas de coincidentes

En hoja 1 tengo una tabla con 10.000 filas y 20 columnas

En hoja 2 tengo una tabla con 2 columnas (A y B).

Necesito copiar la línea completa de la hoja 1 a la la hoja 2, de los valores coincidentes que existan en la columna A de las 2 hojas. Las líneas de la hoja 1 han de copiarse en la misma línea del valor coincidente de la hoja 2... Ejemplo: Si A3 de hoja 2 coincide con A45 de hoja 1, copiar línea 45 en hoja 2 a partir de C3.

Respuesta
2

En la demo de mi Guía Temática N° 1, se encuentra desarrollado el tema de comparar 2 col de distintas tablas. Lo que se hace allí solo es colorearlas... en tu caso sería copiar y pegarla utilizando el <strong style="line-height: 1.5em;">2do <strong style="line-height: 1.5em;">tip,,,,

Avisame si crees que la podrás adaptar a tu libro, sino con mucho gusto te la prepararé para tu caso.

Esperame que yo te la preparo... porque se lee bastante mal el texto copiado en respuesta anterior. No finalices aún.

Sdos!

Aquí va. Solo debes definir la variable 'dato' según corresponda, en mi caso la col A presenta valores numéricos.

Se recorre la hoja menor, en tu caso Hoja2.

Sub completaDuplicados()
'x Elsamatilde
'Rutina que compara 2 tablas . Se copian datos faltantes en la tabla menor
Dim dato As Integer
' trabajo sobre la tabla de menor tamaño
Sheets("Hoja2").Select
ActiveSheet.Range("A3").Select
'recorro la tabla1 hasta encontrar 1 celda vacía que me indica el fin de rango
While ActiveCell <> ""
dato = ActiveCell.Value
'busco código en 2º tabla, col A
Set busco = Sheets("Hoja1").Range("A3:A" & Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row).Find(dato, LookIn:=xlValues, lookat:=xlWhole)
'si lo encontró copia la fila encontrada
If Not busco Is Nothing Then
 filx = ActiveCell.Row
 busco.EntireRow.Copy
 ActiveSheet.Paste
 ActiveSheet.Cells(filx, 1).Select
 Application.CutCopyMode = False
End If
ActiveCell.Offset(1, 0).Select
'repito el bucle
Wend
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas