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

Preguntas similare

Leer las respuestas

#6 Insumos
06/02/2007 - 17:58 | Informe spam
J.P. tu codigo funciona perfectamente y es lo que necesitaba!! Muchisimas
gracias. Sos un genio!

"J.P." escribió en el mensaje
news:
Buenos Días

Intenta con este codigo

Sub Listado()
Dim Nombre As String
Dim i As Integer
Dim c As Range
Dim firstAddress As String
Range("A1").Select
'Borra lo que se tiene y coloca encabezado
Range("D1:E10").ClearContents
Cells(1, 4) = "Valores Encontrados"
Cells(1, 5) = "Número de Repeticiones"
For i = 1 To 10
Nombre = Cells(i, 1)
With Range("C1:C10")
Set c = .Find(Nombre)
If Not c Is Nothing Then
firstAddress = c.Address
Do
If c = Nombre Then
con = con + 1
If con = 1 Then
Cells(Range("D65536").End(xlUp).Offset(1,
0).Row, 4) = c
End If
Cells(Range("D65536").End(xlUp).Offset(0, 1).Row, 5) con
End If
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
con = 0
Next
End Sub

Con este codigo te da en la columna D los valores repetido y en la E
el numero de veces que se repite dicho valor.

Mirala y me cuentas.

On 6 feb, 08:49, "Insumos" wrote:
Mostrar la cita
proponen
Mostrar la cita
que
Mostrar la cita
mensajenews: Hola:
Mostrar la cita
=SI(ESNOD(BUSCARV(A1;$C$1:$C$10;1;FALSO));"";BUSCARV(A1;$C$1:$C$10;1;FALSO)­
)
Mostrar la cita
el
Mostrar la cita
listado
Mostrar la cita
que
Mostrar la cita
Ads by Google
Search Busqueda sugerida