Copiar información desde otras Hojas

Tengo un listado de Productos vinculado a otra hoja en el mismo libro.
Lo que quiero es saber como hago que excel me extraiga del listado de la Hoja1, los productos que no estén en el Listado de la Hoja2 automáticamente(sin duplicarlos). Sin tener que ir de hoja en hoja, copiando la información en una y luego en la otra.
Ej., al copiar el dato de POR producto en Hoja1. A5, automáticamente sea agregado en la última celda del listado de la Hoja.2, si en caso tal no está. O sea sin duplicar información en el listado de la Hoja2
Agradezco, su atención.

1 Respuesta

Respuesta
1
Checa este Código:
Sub Buscaduplicados()
Dim R, C, U As Long
Dim Prod As String
Sheets("Hoja1").Select
U = Range("A" & Rows.Count).Row
For R = 3 To U
    Prod = Cells(R, 1)
    With Sheets("Hoja1")
        Set V = .Cells.Find(Prod, , , xlWhole)
        If Not V Is Nothing Then
            .Range("A" & Rows.Count).End(xlUp).Offset(1, 0) = Prod
        End If
    End With
Next
End Sub
Cuando intento ejecutar la Macro, me asigna el siguiente error:
"Error deEjecución de Basic"
"Procedimiento o subprocedimiento de función no definidos"
Hago constar que estoy en nivel de aprendiz en esto de macros.
Ups, veo que tenia unos errorcitos, je je, no lo probé solo lo codifique, ya lo corregí y lo probé:
Suponiendo que tus datos coienzan en la fila 2, y que están en la columna 1, quedaría así, en un modulo pon lo siguiente:
Sub Buscaduplicados()
Dim R, C, U As Long 'Variable tipo Long por is son mas de 32768 registros
Dim Prod As String  'Tipo String para Texto o Numero
Application.ScreenUpdating = False
'Seleccionar la hoja1
Sheets("Hoja1").Select
U = Range("A" & Rows.Count).End(xlUp).Row 'Obtener No. de Ultima Fila
For R = 3 To U   ''Inicia bucle en toda la columna
    Prod = Cells(R, 1)  'Guardaos cada Producto en la variable Prod
    With Sheets("Hoja2") 
        Set V = .Cells.Find(Prod, , , xlWhole)  'Busca el Prod en la Hoja2
        If V Is Nothing Then  'Si no lo encuentra lo agrega
            .Range("A" & Rows.Count).End(xlUp).Offset(1, 0) = Prod
            C = C + 1  'Contador de Productos Nuevos en la Hoja2
        End If
    End With
Next
MsgBox "PROCESO TERMINADO, SE ENCONTRARON " & C & " REGISTROS NUEVOS", vbInformation
Application.ScreenUpdating = True
End Sub
Comprobado, Saludos.
Si ocupas más ayuda, puedes mandarme tu archivo a [email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas