Saltar al contenido

Copiar datos y pegar en la última fila disponible


Recommended Posts

publicado

Qué tal! 
Debo de hacer una macro la cual copie los datos de un conjunto de libros a la última fila del libro en el que estoy ejecutando la macro.

Con la ayuda de un cuadro de dialogo selecciono la carpeta que quiero abrir con los libros, ya que definir un path no me sirve porque cambia constantemente.

Detalles:

-Como se copia y pegan datos de varios libros, la última fila siempre va a cambiar.

-La hoja de la cual copio los datos se llama igual en todos los libros(ReporteGeneral) a su vez, el libro al que los pego cambia de nombre pero la hoja en la que los pego tiene el mismo nombre (Detalles) 

He logrado algo con mi código que es abrir el cuadro de diálogo para seleccionar la carpeta que quiero abrir y copia exitosamente los datos pero lo que falla es el pegado ya que mi macro para localizar la última fila es incorrecta.

Adjunto un zip que contiene la carpeta en la cual se encuentran los libros a copiar y el libro prueba en el que los quiero pegar.

 

 

Prueba.zip

publicado
Sub DailyTrans_MDM()
Dim vFile As Variant
Dim wbCopyTo As Workbook
Dim wsCopyTo As Worksheet
Dim wbCopyFrom  As Workbook
Dim wsCopyFrom As Worksheet

Application.ScreenUpdating = False
Set wbCopyTo = ActiveWorkbook
Set wsCopyTo = Sheets("Detalles")
'------------------------------------------------------------------------------
vFile = Application.GetOpenFilename("Daily Reports (*.xl*)," & "*.xl*", 1, "Select Report ", "Open File", False)
If TypeName(vFile) = "Boolean" Then
   Exit Sub
Else
   Set wbCopyFrom = Workbooks.Open(vFile)
   Set wsCopyFrom = wbCopyFrom.Worksheets("ReporteGeneral")
End If
'--------------------------------------------------------------------------------------
wsCopyFrom.Range("A2:M" & wsCopyFrom.Range("A" & Rows.Count).End(xlUp).Row).Copy
wsCopyTo.Range("A" & wsCopyTo.Range("A" & Rows.Count).End(xlUp).Row + 1).PasteSpecial xlPasteValues
wbCopyFrom.Close SaveChanges:=False
End Sub

 

publicado

Una pregunta Antoni ¿ Cómo podría volverlo un loop para que me copie y pegue los datos de todos los libros dentro de la carpeta ? Lo intenté poniendo el Do While entre 

Set wbCopyFrom = Workbooks.Open(vFile) 

Set wsCopyFrom = wbCopyFrom.WorkSheets(“ReporteCifrasControl”) 

Sin éxito @Antoni

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.