Comparación de dos listados con VBA

06/02/2007 - 01:18 por Insumos | Informe spam
Hola gente del Foro:

Tengo dos listados y necesito que el excell me los compare y luego elabore
un reporte con las coincidencias que encontró. Supongamos que un listado
esta en las celdas de una hoja de la A1 hasta la A10, mientras que el otro
se encuentra desde la C1 hasta la C10 y que en la columna E quisiera que me
pusiera las coincidencias que encontro y que deje en blanco donde no hubo
coincidencia.
Elaboré el siguiente código con mis conocimientos limitados, funciona, pero
ovbiamente solo funciona para el primer item del listado, y seguir el mismo
procedimiento para todos los item seria muy engorroso:

Sub Listado()

Dim Nombre As String
Range("A1").Select
Nombre = ActiveCell

Cells.Find(What:=Nombre, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:=False _
, SearchFormat:=False).Activate
Selection.Copy
ActiveCell.Offset(0, 2).Select
ActiveSheet.Paste
End Sub

Hay manera de hacer algo con un codigo más ingenioso, simple y que funcione
mejor? Estoy seguro de que si, pero no se la manera.
Desde ya muchas gracias!!
CONTADURIA
 

Leer las respuestas

#1 victorbcn1952
06/02/2007 - 08:50 | Informe spam
Si no te es imprescindible hacerlo en código, prueba esta fórmula en
E1:

=SI(A1Á;A1;"")

y cópiala hasta E10

:-)

Hola gente del Foro:

Tengo dos listados y necesito que el excell me los compare y luego elabore
un reporte con las coincidencias que encontró. Supongamos que un listado
esta en las celdas de una hoja de la A1 hasta la A10, mientras que el otro
se encuentra desde la C1 hasta la C10 y que en la columna E quisiera que me
pusiera las coincidencias que encontro y que deje en blanco donde no hubo
coincidencia.
Elaboré el siguiente código con mis conocimientos limitados, funciona, pero
ovbiamente solo funciona para el primer item del listado, y seguir el mismo
procedimiento para todos los item seria muy engorroso:

Sub Listado()

Dim Nombre As String
Range("A1").Select
Nombre = ActiveCell

Cells.Find(What:=Nombre, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:=False _
, SearchFormat:=False).Activate
Selection.Copy
ActiveCell.Offset(0, 2).Select
ActiveSheet.Paste
End Sub

Hay manera de hacer algo con un codigo más ingenioso, simple y que funcione
mejor? Estoy seguro de que si, pero no se la manera.
Desde ya muchas gracias!!
CONTADURIA

Preguntas similares