crear una lista combinada de dos listas de diferentes hojas

09/10/2006 - 21:54 por Luciano | Informe spam
Hola a todos,

Tengo dos listas diferentes que contienen los mismos numeros de parte y en
algunos casos las listas contienen numero de parte que no se encuentran en la
otra lista, necesito crear alguna formula - o algo - que me cree una nueva
lista de tal forma que no se repitan los mismos numeros pero que incluyan los
numeros que no existan en la otra lista.

Como puedo hacerlo?
 

Leer las respuestas

#1 David
09/10/2006 - 23:04 | Informe spam
Supongamos que tu primer listado se encuentra en la hoja Lista1, y el segundo
listado, el cual contiene los nuevos registros que quieres agregar a Lista1,
se encuentra en la hoja Lista2. También supongamos que en ambos listados el
número de parte se encuentra en la columna A.

Sin código:
Te sugeriría que al final del segundo listado, agregaras una nueva columna,
y a partir de la fila 2, pegaras la siguiente fórmula :
=SI(ESERROR(BUSCARV(Lista2!A2,Lista1!$A:$A,1,0)),0,1)
Esta fórmula te dará como resultado 0 si el número de parte de este registro
no se encuentra en Lista1, y 1 en caso contrario. Luego podrás aplicar un
filtro según la nueva columna buscando los ceros, y lo copias y pegas al
final de Lista1.

Con código:
Podrías hacer un procedimiento que hiciera algo parecido al método manual:
1. Insertar la fórmula anterior en una columna (supondré que es la columna E)
Ojo: esto es más rápido con funciones que haciéndolo en el mismo código...
2. Dependiendo del resultado, copiar el registro al final de la hoja Lista1.
3. Eliminar la columna en la que insertó la fórmula.

Sería algo como esto:

Sub CopiarNuevos()
Dim N1, N2, C As Integer, Seguir As Boolean

'Se calcula el número de filas de Lista1 en N1:
N1 = Application.WorksheetFunction.CountA(Range("Lista1!A:A")) + 1

'La búsqueda en Lista2 principiará de la fila 2:
N2 = 2
Seguir = True
Do
'Verificar si llegó al final de Lista2:
If Len(Sheets("Lista2").Cells(N2, 1)) > 0 Then
'Se asigna la fórmula a la celda:
Sheets("Lista2").Cells(N2, 5).Formula =
"=IF(ISERROR(VLOOKUP(Lista2!A" & N2 & ",Lista1!$A:$A,1,0)),0,1)"
'Se verifica si existe el número de parte:
If Sheets("Lista2").Cells(N2, 5).Value = 0 Then
'Se copian las primeras 4 columnas:
For C = 1 To 4
Sheets("Lista1").Cells(N1, C).Value =
Sheets("Lista2").Cells(N2, C).Value
Next C
'Se prepara la siguiente fila de Lista1:
N1 = N1 + 1
End If
Else
Seguir = False
End If
'Se borra la fórmula:
Sheets("Lista2").Cells(N2, 5).Formula = ""
'Se avanza a la siguiente fila de Lista2:
N2 = N2 + 1
Loop While Seguir
End Sub


Estúdialo (prepara un libro con las hojas que te menciono y pon datos en las
primeras 4 columnas de las hojas Lista1 y Lista2), y adáptalo a tu caso.



"Luciano" escribió:

Hola a todos,

Tengo dos listas diferentes que contienen los mismos numeros de parte y en
algunos casos las listas contienen numero de parte que no se encuentran en la
otra lista, necesito crear alguna formula - o algo - que me cree una nueva
lista de tal forma que no se repitan los mismos numeros pero que incluyan los
numeros que no existan en la otra lista.

Como puedo hacerlo?

Preguntas similares