Copiar información de un archivo a otro

Para Elsa

Buen día:

De antemano muchas gracias por la colaboración que me pueda brindar.

Sigo trabajando en el aplicativo para control de inventarios en el que muy amablemente me ha colaborado hace un par de meses atras; el aplicativo ya está siendo utilizado por varios usuarios de la organización, lo que necesito es enviar un nuevo archivo a cada usuario, que contiene mejoras con respecto al enviado inicialmente, la idea es mediante una macro poder copiar la información que contiene el archivo inicial que actualmente tiene en uso cada uno de los usuarios, al nuevo archivo que contiene las mejoras, debo copiar la información contenida en las hojas 2 (entradas), 3 (Salidas), 5(lista de productos), 6 (saldo), 7 (Proveedores), 8 (relación órdenes), del archivo anterior, a las mismas hojas del nuevo archivo, el nuevo archivo va sin ningún movimiento; lo estoy intentando con el siguiente código, pero no logro que las instrucciones se ejecuten para el archivo anterior, las instrucciones se ejecutan en el nuevo archivo.

Sub COPIARINFORMACION()
'Copiar informacion del archivo anterior al nuevo archivo
    Application.ScreenUpdating = False
Dim NombreCarpeta As String, libro1 As String, libro2 As String
libro1 = ActiveWorkbook.Name 'El libro nuevo
'abrir el archivo desde la ruta que tenga ingresada en la celda G2 de la hoja1 del archivo nuevo
NombreCarpeta = ActiveWorkbook.Sheets("FORMULARIO").Range("G2") 'ok funciona
Workbooks.Open NombreCarpeta   'Abrir archivo ubicado en la ruta de la celda G2
    libro2 = ActiveWorkbook.Name 'Archivo anterior,el que se acaba de abrir
'Mostrar y desproteger las hojas que se encuentran oculatas   

Hoja2.Visible = xlSheetVisible 'Hoja Entradas del archivo anterior
    Hoja2.Unprotect Password = "1717171"
    Hoja3.Visible = xlSheetVisible 'Hoja Salidas del archivo anterior
    Hoja3.Unprotect Password = "1717171"
    Hoja5.Visible = xlSheetVisible 'Hoja Lista de Productos del archivo anterior
    Hoja5.Unprotect Password = "1717171"
    Hoja6.Visible = xlSheetVisible 'Hoja Saldo del archivo anterior
    Hoja6.Unprotect Password = "1717171"
    Hoja7.Visible = xlSheetVisible 'Hoja Proveedores del archivo anterior
    Hoja7.Unprotect Password = "1717171"
    Hoja8.Visible = xlSheetVisible 'Hoja Relacion OC del archivo anterior
    Hoja8.Unprotect Password = "1717171"

'Empezar a copiar la información del archivo anterior al nuevo archivo

1 respuesta

Respuesta
2

La instrucción de copiado va por cada hoja del libro viejo. Debes ajustar los nombres de las hojas y los rangos a copiar.

'seleccionar el rango del libro1 y pegarlo en el libro2
Sheets("Entradas"). Range("A1:D12").Copy Destination:=Workbooks(libro1). Sheets("mes"). Range("A1")
'repetir para cada hoja, ajustando nombre hoja de origen y rango a copiar

Sdos!

Hola Elsa buenas tardes:

Muchas gracias por la respuesta, una inquietud, es posible que el rango a copiar sea dinamico?, esto teniendo en cuenta que los rangos no son fijos, la referencia es la columna A, y debe ser hasta la columna G y la ultima fila con datos.

Si claro. Debes considerar para el fin de rango, la col que siempre tendrá datos hasta el final. En este ejemplo será la col A.

Sheets("Entradas").Range("A1:G" & Range("A" & Rows.Count).End(xlUp).Row).Copy Destination:=Workbooks(libro1).Sheets("mes").Range("A1")

Sdos!

Ante todo muchas gracias por tus respuestas:

El nuevo código que me envías no me genera error, pero tampoco me copia nada, si utilizo el que me envío anteriormente, si me copia hasta el rango que tenga definido el código (Ej. "A1:G100"), ¿sera posible que falte algo en el nuevo código?, creo importante mencionar que los nombres de las hojas de los dos libros son los mismos, estoy efectuando el reemplazo de "mes" por "Entradas".

Muchas gracias nuevamente por tu tiempo.

Probala de este modo:

Sheets("Entradas"). Range("A1:G" & Sheets("Entradas").Range("A" & Rows. Count).End(xlUp). Row). Copy Destination ----------

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas