Inicio > Microsoft Excel > jbf99 > buscar datos en diferentes hojas

buscar datos en diferentes hojas

Experto:
Usuario:
Fecha: 03/10/2006
Valoración: (5,00 sobre 5) Categoría: Microsoft Excel
03/10/2006
fredy, usuario preguntando en Microsoft Excel
Usuario
Saludos.
Te agradezco por la ayuda q puedas brindarme. Tengo 2 hojas en excel, donde cada hoja tiene en promedio 1000 registros, ademas en cada hoja hay datos de clientes, cada hoja tiene 3 campos (DNI, Nombres, Direccion). Lo q deseo es buscar a los clientes de la hoja 2 q se repiten en la hoja 1 y me muestre sus datos completos (DNI, Nombres y Direccion) en la tercer hoja.
Muchas gracias
03/10/2006
fredy, experto respondiendo en Microsoft Excel
Experto
Imagino que tienes una hoja (Hoja2) con titulos de campo tal que DNI , NOMBRES , DIRECCION. Una Hoja (Hoja1) donde al menos tienes un campo (DNI) a comparar y una hoja destino (Hoja3) con nombres de campo (DNI,NOMBRES,DIRECCION).
Ejecuta esta macro y me comentas resultados.La macro buscar cada valor del DNI de la hoja2 en la hoja 1 y si lo encuentra devuelve la linea de registros en la hoja3.

Un saludo

Sub REPETIDOS()
Dim CELDA As Range
On Error GoTo 10
For Each CELDA In Worksheets("HOJA2").Range("A2:A65536")
If CELDA = "" Then Exit For
If Application.WorksheetFunction.VLookup(CELDA, Worksheets("HOJA1").Range("A1:A65536"), 1, 0) Then
Worksheets("HOJA3").Range("A2").Offset(I, 0) = CELDA
Worksheets("HOJA3").Range("A2").Offset(I, 1) = CELDA.Offset(0, 1)
Worksheets("HOJA3").Range("A2").Offset(I, 2) = CELDA.Offset(0, 2)
I = I + 1
End If
10 Next CELDA
End Sub
03/10/2006
fredy, usuario preguntando en Microsoft Excel
Usuario
Saludos y gracias por tu pronta respuesta.
cuando ejecuto el codigo de la macro q me enviastes me sale el sigt. mensaje de error:
Error 1004
No se puede obtener la propiedad de Vlookup de la base WorksheetFunction.
A q se debe este error??
Ah pero te digo q el primer dato si lo encuentra y cuando le realice un seguimiento al programa en el la busqueda del tercer datos es donde sale el error.
03/10/2006
fredy, experto respondiendo en Microsoft Excel
Experto
Prueba con este

Sub REPETIDOS()
Dim CELDA As Range
On Error GoTo 10
For Each CELDA In Worksheets("HOJA2").Range("A2:A65536")
If CELDA = "" Then Exit For
If Application.WorksheetFunction.CountIf(Worksheets("HOJA1").Range("A1:A65536"), CELDA) > 0 Then
Worksheets("HOJA3").Range("A2").Offset(I, 0) = CELDA
Worksheets("HOJA3").Range("A2").Offset(I, 1) = CELDA.Offset(0, 1)
Worksheets("HOJA3").Range("A2").Offset(I, 2) = CELDA.Offset(0, 2)
I = I + 1
End If
10 Next CELDA
End Sub


un saludo
03/10/2006
fredy, usuario preguntando en Microsoft Excel
Usuario
Muchisimas gracias resulto excelente
Enlaces patrocinados