Estimado : vi tu post sobre "Macro para copiar datos de varios libros y pegarlos en un libro nuevo en la primera hoja"

Lo que necesito es copiar datos de la primer hoja de cada archivo a un solo archivo y unir todos esos datos en uno solo. O sea, le envie un archivo con datos a completar a mis proveedores (precios y códigos en columnas). Ahora que volvieron esos archivos individuales de cada uno quiero un proceso que los vaya copiando y los vaya pegando en una hoja de un nuevo archivo. Las columnas son para todos las mismas así que la idea es que traiga cada uno de los datos y los pegue debajo del anterior. Con esto tengo un listado maestro e precios a partir de datos de cada proveedor.

También seria útil el proceso inverso o se que desde ese listado maestro me arme archivos individuales tomando como marca el nombre del proveedor que esta en una columna. Así armo un archivo para cada proveedor con sus items a trabajar y se los envío.

1 respuesta

Respuesta
2

Para la primera parte, unir en una hoja de varios libros, revisa la siguiente macro

Macro para copiar datos de varios libros de unas celdas especificas y pegarlos en un libro nuevo en la primera hoja.

Sub libros()
'Lee archivos del directorio y Copia un rango de la primera hoja
'Por.Dante Amor
    '
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set l1 = ThisWorkbook
    ruta = ThisWorkbook.Path & "\"
    archi = Dir(ruta & "*.xls*")
    Set h1 = l1.Sheets("hoja2")
    h1.cells.clearcontents
    'j = 2
    Do While archi <> ""
        If archi <> l1.Name Then
            Set l2 = Workbooks.Open(ruta & archi)
            Set h2 = l2.Sheets(1)
            j = h1.range("A" & rows.count).end(xlup).row + 1
            h2.Range("A2:O2").Copy h1.Range("A" & j)
            'j = j + 1
            l2.Close
        End If
        archi = Dir()
    Loop
    MsgBox "Fin"
End Sub

Cambia A2:O2 por el rango que quieras copiar.

Cambia "Hoja2" por el nombre de la hoja destino


Ok lo pruebo y te aviso. Por lo que veo los archivos van todos en el mismo dir. No importa los nombres de los archivos. Y la macro la hago en el de la hoja2 que sería el archivo destino.

La macro debe ir en el archivo destino, desde ahí ejecutas la macro. Prueba con 2 archivos en el mismo el directorio.

¡Gracias! Dante amor anduvo perfecto. Ahora necesito hacer a la inversa. Desde un listado de varias columnas, basarse en una de ellas donde están los nombres de los proveedores, seleccionar todas las filas que tengan el mismo proveedor, copiarlas y pegarlas en un archivo nuevo y guardar ese archivo (en lo posible con el nombre del proveedor). Luego todos esos archivos individualmente se lo envío por mail a cada uno de ellos para que me lo completen. Este envío también lo hago automático con otra macro que tengo, aunque estaría bueno que haga todo la misma.

No se si me explico.

Gracias nuevamente

Dante Amor. Pudiste ver mi última consulta?

Revisa el siguiente artículo

https://www.gerencie.com/dividir-datos-de-una-hoja-de-excel-en-grupos.html

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas