Macro para copiar valores de un libro a otro con una condición

Elsa buenos días, estoy buscando ayuda para realizar un macro que cumpla con la siguiente función:
Entre a un libro, busque el nombre de un cliente en una columna determinada, copie un valor de la misma fila del cliente en una columna determinada y luego lo pegue en otro libro, en el mismo cliente y en una columna determinada.

2 respuestas

Respuesta
1

Si supiera que sabrás ajustar el código que te prepare ya te la enviaría... pero lo más probable es que luego tendré que modificarla a tu modelo.

Aclara por favor estos detalles:

- ¿Ya sabes el nombre y ubicación del libro o que el programa te permita buscarlo?

- ¿Cómo le indicaras al programa que cliente buscar?

- En que hoja y columna se encuentra el cliente y de que columna se toma el otro valor.

- ¿El otro libro también hay que buscarlo o ya tenes ruta y nombre?

- En que hoja y columna se encuentra el cliente

- En que columna se pega el dato

- Que hacer con los 2 libros... guardar el 2do (si), ¿cerrarlos?.. ¿Seguir con otras búsquedas?

Espero tus aclaraciones. No valores aún.

Sdos.

Elsa

Hola elsa buenos días.
1) Ya se el nombre y ubicación del archivo, siempre son los mismos.

2)Los nombres de los clientes los tengo en una columna por nombre y apellido, en los dos libros son exactamente los mismos nombres y apellidos.

3)En el libro origen los clientes se encuentran en la hoja 1 (resumen) y en la columna DE (las columnas A y B están ocultas, no se si sirve de algo) y el valor que quiero copiar se ubica en la columna G. En el libro destino los clientes se ubican la hoja 1(Arq. Obra), en la columna DE y los valores se deben pegar en la columna M,

4)Tengo la ruta del libro destino

5) El libro origen se debe cerrar sin guardar mientras que el libro destino se debe guardar sin cerrar.

Muchas gracias por la brevedad en la respuesta!

Bien, me queda solo un detalle: - ¿Cómo le indicaras al programa que cliente buscar?

¿Necesitas recorrer toda la col de clientes o solo será para un cliente cada vez, quizás seleccionando su celda o ... ya me dirás.

Sdos!

necesito que recorra toda la columna y que actualice todos los clientes 

Bien, entonces desde tu libro de origen, entra al Editor de macros (con atajo de teclado ALT y F11), insertá un módulo y allí copiá este código:

Sub datosEntreLibros()
'x Elsamatilde
rutaDest = "C:\Users\elsam\Downloads\AL_TRABAJO\"    'ajustar
'se trabaja desde el libro origen
Set wor = ThisWorkbook
Set hor = wor.Sheets("Resumen")
ChDir (rutaDest)
'se busca el libro destino
On Error Resume Next
destino = Application.GetOpenFilename
'si la variable está vacía significa que cancelamos la ventana de diálogo
If destino = False Then
    MsgBox "Proceso cancelado."
    Exit Sub
End If
'abrir el libro elegido
Workbooks.Open destino
'se guarda nombre de libro y hoja destino
Set wde = ActiveWorkbook
Set hde = wde.Sheets("Arq. Obra")
'volver a libro original
hor.Activate
'recorrer la col de clientes (D) a partir de fila 2 .... ajustar
[D2].Select
'la recorre hasta encontrar celda vacía asumiendo fin de rango
While ActiveCell <> ""
    'se busca el cliente en libro 2
    nbreClie = ActiveCell.Value: datoG = Range("G" & ActiveCell.Row)
    Set busco = hde.Range("D:D").Find(nbreClie, , lookat:=xlWhole)
    If Not busco Is Nothing Then hde.Range("M" & busco.Row) = datoG
    'pasa a la fila sgte
    ActiveCell.Offset(1, 0).Select
Wend
MsgBox "Fin del pase."
'se cierra el libro origen y se guarda el libro destino
ActiveWorkbook.Close False
ActiveWorkbook.Save
End Sub

Hay un par de detalles todavía para que ajustes a tu modelo (dejo comentarios en el código para que te guíes), como la ruta de los libros destino y la primer fila donde empiezan los datos de los clientes.

Respuesta
1

Hola buenos días, muchas gracias por los ejemplos. Sinceramente me parece muy útil ya que entiendo del tema y lo único que me hacia falta eran los códigos. El resto lo voy a poder modificar! Cualquier cosa si me sale algún error te envío el código final que haya realizado para que me des una mano con algún error de visual. Saludos y tienes mi voto!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas