Jump to content
Jose BN

ANSWERED Copiar datos Libro activo a otro Libro

Recommended Posts

Hola! amig@s del foro, quisiera solicitarles el apoyo con la siguiente macro que intento realizar con la intención de copiar los datos que inician en la celda 5 de las columnas("B,D,E,F,G,H,I) de mi libro activo ("Libro1") a copiarlas a un "libro2" a partir de la celda "A1" de la hoja1 de este ultimo, lo cual no he logrado tener éxito:

Sub copiarDatosDeArchivo1A2()
Dim x As Workbook
Dim y As Workbook

'## Abrimos ambos ficheros:
Set x = ActiveWorkbook
Set y = Workbooks.Open("C:\Users\jballadares\Desktop\CSV\JBLibro4.xlsx")

'Copiamos los datos que queramos del primer libro de excel:
x.Sheets("RV").ActiveSheet.Range("B65536").End(xlUp).Copy

'Pegamos en el otro libro:
y.Sheets("Hoja1").Range("A1").PasteSpecial

'Cerramos el fichero:
x.Close

End Sub

Agradezco la ayuda que me puedan brindar.

Saludos

JB

 

Link to post
Share on other sites

Hola @Jose BN

A ver si te sirve esta modificación.

Por favor, la próxima consulta recuerda que hay que subir los archivos para pruebas.

Suerte!
 

Sub copiarDatosDeArchivo1A2()
Dim x As Workbook
Dim y As Workbook

'## Abrimos ambos ficheros

cruta01 = ThisWorkbook.Path & "\"
cruta02 = "C:\Users\jballadares\Desktop\CSV\"
carch01 = ThisWorkbook.Name
carch02 = "JBLibro4.xlsx"

Set x = ActiveWorkbook
Set y = Workbooks.Open(cruta02 & carch02)

'Copiamos los datos que queramos del primer libro de excel:
ufila1 = 0: ufila1 = Hoja1.Cells(Rows.Count, 2).End(xlUp).Row
x.Sheets("RV").Range("B1:B" & ufila1).Copy

'Pegamos en el otro libro:
y.Sheets("Hoja1").Range("A1").PasteSpecial

'Cerramos el fichero:
'x.Close
y.Save
y.Close

End Sub

 

Link to post
Share on other sites

Tanto te cuesta intentar entender el código, basta con poner un poco de interés, se trata de repetir estas 2 líneas para cada una de las columnas que desees:

x.Sheets("RV").Range("B1:B" & ufila1).Copy
y.Sheets("Hoja1").Range("A1").PasteSpecial

Y no, no voy a modificarte la macro a menos que subas un archivo con un ejemplo práctico de lo que quieres.

Link to post
Share on other sites
Hace 1 hora, Gerson Pineda dijo:

Hola Jose

Revisa el adjunto con una solución [solo debes poner las variables de la ruta]

 

Saludos

Copiar Columnas Intercaladas_GP.zip 45 kB · 3 descargas

Gersón ha queda muy bien.

Sub CopiarColumnasIntercaladas_GP()

'************ by Gerson Pineda ************
'************ 31/Oct/2019 ************

Application.ScreenUpdating = False

ruta = ("C:\Users\jcarce\Desktop\Libro1JB.xlsx")
vuf = Range("A" & Rows.Count).End(xlUp).Row
Workbooks.Open ruta: ThisWorkbook.Activate
Union(Range("B5:B" & vuf), Range("D5:I" & vuf)).Copy _
Workbooks("Libro1JB.xlsx").Worksheets(1).Range("A1")
Workbooks("Libro1JB.xlsx").Close 1

Application.ScreenUpdating = True

End Sub

Me podrías explicar esta parte: a qué se debe el _ del copy?

Puedo interpretar que B está de intercalada de las columnas D hasta I (estas ultimas son continuas)siendo esta la forma de unir los datos  al estar intercalados. 

Union(Range("B5:B" & vuf), Range("D5:I" & vuf)).Copy _

Por ultimo para aprendizaje: porqué se debe contar A? hubiera muerto pensado que los datos siempre deberían haber partido de B y posiblemente no lo hubiera solucionado nunca!!!!, a pesar de haber sido adoptado por tu familia(tú y tú abuelo). Pero llegamos donde grandes personas como: tierra_pampa , Antoni , Gerson Pineda EXISTEN EN EL EXCEL AYUDA!

vuf = Range("A" & Rows.Count).End(xlUp).Row

Saludos

Link to post
Share on other sites
Hace 2 horas, Jose BN dijo:

Me podrías explicar esta parte: a qué se debe el _ del copy?

Es simplemente escribir una linea en partes, lo uso para mejorar la lectura y no estar leyendo de extremo a extremo

Hace 2 horas, Jose BN dijo:

Puedo interpretar que B está de intercalada de las columnas D hasta I (estas ultimas son continuas)siendo esta la forma de unir los datos  al estar intercalados. 

Union(Range("B5:B" & vuf), Range("D5:I" & vuf)).Copy _

La opción de Union, es muy útil para casos como el tuyo, pues te ahorra mucho trabajo, es como seleccionar manualmente rangos con la tecla Ctrl, puedes probarlo con tu mismo libro

Hace 2 horas, Jose BN dijo:

Por ultimo para aprendizaje: porqué se debe contar A? hubiera muerto pensado que los datos siempre deberían haber partido de B y posiblemente no lo hubiera solucionado nunca!!!!

Que va no digas eso!, la idea es poder obtener la ultima fila con datos, puede ser A, B o cualquiera, pues al fin al cabo solo necesitamos esa variable, pues en tu tabla ademas se asume que todas las columnas están llenas

Hace 2 horas, Jose BN dijo:

a pesar de haber sido adoptado por tu familia(tú y tú abuelo). Pero llegamos donde grandes personas

Mira ya que mencionas al abuelo @avalencia jaja es oportuno mencionar que nos puede salir con algo diferente, ya tu sabes como en los años 1800 se hacían las cosas :lol:

 

Saludos a todos!

Link to post
Share on other sites

Hola @Jose BN

Perdón amigo, hice el código y no caí en cuenta que el pedido original incluía otras columnas. Perdón!

La mejor manera de aprender es bajar un archivo cualquiera e ir viendo (paso a paso) que es lo hace Excel tras cada línea de código.

Mientras tanto, siempre tendrás el foro para evacuar posibles dudas.

Qué tengas una buena jornada!

Link to post
Share on other sites
Guest
This topic is now closed to further replies.

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.

Legitimación: Consentimiento del interesado.

Destinatarios: Hetzner Online GmbH.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.




  • Posts

    • Buenas tardes estimados, espero y me puedan ayudar con este dilema se trata de lo siguiente. tengo un archivo "01 PCP.xlsx - v02 - copia" el cual entre otras hojas contiene tres principalmente, y son: "Proy.-Comer"      -       "BD_Recetas"      -      "Mat_Stock" En la hoja "Proy.-Comer" tenemos en color naranja las semanas del año, y en color amarillo los productos, y en plomo las cantidades (que se digitan manualmente). ***Lo que necesito es que en la hoja "BD_Recetas" , a partir de la celda "M65"  Sume la cantidad correspondiente a la semana según el producto de la columna en color amarillo "L10:L193" Y sus cantidades (celdas de color plomo), y luego lo multiplique por la cantidad según corresponda de la columna "H65" y que si la celda de la columna H dice caja que lo deje en "0", y asi sucesivamente para las demás semanas  (se puede apreciar en la formula).*** En la Hoja  "Mat_Stock",  a partir de la celda "I7" ***Quiero sumar por semana la cantidad del material a utilizar, en la columna A que esta en amarillo los códigos y tiene que sumar por semana según el código de la hoja "BD_Recetas" en la columna "F" de color naranja (Se puede ver también en la formula de las celdas)***   esto es para tratar de automatizarlo con una macro.   DE ANTEMANO MUCHAS GRACIAS POR LA AYUDA.     01 PCP.xlsx - v02 - copia.xlsm
    • Hola @wess (y demás concurrencia) Adjunto otra alternativa con Tabla dinámica, pero utilizando el modelo de datos de power pivot y funciones DAX Te mostrara la suma del mes filtrado y el acumulado   Saludos a todos! Filtrar producto con acumulado mensual DAX_GP.xlsx
    • Adjunto otra opción,  saludos, Silvia Tabla dinamica sq.xlsx
    • Si y funciona bien. Ahora tengo que repasar mi macro para encontrar ,si puedo y se, depurar el error en el programa general. Muchas gracias. Un saludo
    • Hola  AlexanderS, justo lo que que necesitaba, la solución esta super, Declaro el tema como solucionado. Muchas gracias y mil Bendiciones desde Colombia
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy