Problema con macro
Expertos al ejecutar esta macro tengo un problema hago algo mal:
tengo varios archivos en una carpeta y al ejecutar la macro del primer archivo solo me recoje el dato de la primera fila igual k de los demas del ultimo archivo me recoje todos los datos. Si podeis decir donde es mi fallo.
Sub ResumenLibros()
Dim Carpeta As String, UltimaFila As Integer, Archivo
Carpeta = ThisWorkbook.Path
Application.ScreenUpdating = False
ThisWorkbook.Sheets("COBROS Y PAGOS").Range("A3:J65536").ClearContents
UltimaFila = ThisWorkbook.Sheets("COBROS Y PAGOS").Range("A65536").End(xlUp).Row
With CreateObject("Scripting.FileSystemObject")
With .GetFolder(Carpeta)
For Each Archivo In .Files
'Edita el nombre de tu archivo 'resumen' y el nombre de la hoja que los recoge
If (Archivo.Name Like "*.xls") And (Archivo.Name <> "resumen_de_venta_01.xls") Then
Workbooks.Open Filename:=Carpeta & "\" & Archivo.Name
With ThisWorkbook.Sheets("COBROS Y PAGOS")
'Edita el nombre de la hoja de donde se toman los datos
.Cells(UltimaFila + 1, 1) = Workbooks(Archivo.Name).Sheets("IRPF").Range("E25")
.Cells(UltimaFila + 2, 1) = Workbooks(Archivo.Name).Sheets("IRPF").Range("E26")
.Cells(UltimaFila + 3, 1) = Workbooks(Archivo.Name).Sheets("IRPF").Range("E27")
.Cells(UltimaFila + 4, 1) = Workbooks(Archivo.Name).Sheets("IRPF").Range("E28")
.Cells(UltimaFila + 5, 1) = Workbooks(Archivo.Name).Sheets("IRPF").Range("E29")
.Cells(UltimaFila + 1, 2) = Workbooks(Archivo.Name).Sheets("IRPF").Range("F25")
.Cells(UltimaFila + 2, 2) = Workbooks(Archivo.Name).Sheets("IRPF").Range("F26")
.Cells(UltimaFila + 3, 2) = Workbooks(Archivo.Name).Sheets("IRPF").Range("F27")
.Cells(UltimaFila + 4, 2) = Workbooks(Archivo.Name).Sheets("IRPF").Range("F28")
.Cells(UltimaFila + 5, 2) = Workbooks(Archivo.Name).Sheets("IRPF").Range("F29")
.Cells(UltimaFila + 1, 3) = Workbooks(Archivo.Name).Sheets("IRPF").Range("G25")
.Cells(UltimaFila + 2, 3) = Workbooks(Archivo.Name).Sheets("IRPF").Range("G26")
.Cells(UltimaFila + 3, 3) = Workbooks(Archivo.Name).Sheets("IRPF").Range("G27")
.Cells(UltimaFila + 4, 3) = Workbooks(Archivo.Name).Sheets("IRPF").Range("G28")
.Cells(UltimaFila + 5, 3) = Workbooks(Archivo.Name).Sheets("IRPF").Range("G29")
.Cells(UltimaFila + 1, 4) = Workbooks(Archivo.Name).Sheets("IRPF").Range("H25")
.Cells(UltimaFila + 2, 4) = Workbooks(Archivo.Name).Sheets("IRPF").Range("H26")
.Cells(UltimaFila + 3, 4) = Workbooks(Archivo.Name).Sheets("IRPF").Range("H27")
.Cells(UltimaFila + 4, 4) = Workbooks(Archivo.Name).Sheets("IRPF").Range("H28")
.Cells(UltimaFila + 5, 4) = Workbooks(Archivo.Name).Sheets("IRPF").Range("H29")
End With
Workbooks(Archivo.Name).Close
UltimaFila = UltimaFila + 1
End If
Next
End With
End With
ThisWorkbook.Sheets("COBROS Y PAGOS").Range("A1").Select
Application.ScreenUpdating = True
End Sub
tengo varios archivos en una carpeta y al ejecutar la macro del primer archivo solo me recoje el dato de la primera fila igual k de los demas del ultimo archivo me recoje todos los datos. Si podeis decir donde es mi fallo.
Sub ResumenLibros()
Dim Carpeta As String, UltimaFila As Integer, Archivo
Carpeta = ThisWorkbook.Path
Application.ScreenUpdating = False
ThisWorkbook.Sheets("COBROS Y PAGOS").Range("A3:J65536").ClearContents
UltimaFila = ThisWorkbook.Sheets("COBROS Y PAGOS").Range("A65536").End(xlUp).Row
With CreateObject("Scripting.FileSystemObject")
With .GetFolder(Carpeta)
For Each Archivo In .Files
'Edita el nombre de tu archivo 'resumen' y el nombre de la hoja que los recoge
If (Archivo.Name Like "*.xls") And (Archivo.Name <> "resumen_de_venta_01.xls") Then
Workbooks.Open Filename:=Carpeta & "\" & Archivo.Name
With ThisWorkbook.Sheets("COBROS Y PAGOS")
'Edita el nombre de la hoja de donde se toman los datos
.Cells(UltimaFila + 1, 1) = Workbooks(Archivo.Name).Sheets("IRPF").Range("E25")
.Cells(UltimaFila + 2, 1) = Workbooks(Archivo.Name).Sheets("IRPF").Range("E26")
.Cells(UltimaFila + 3, 1) = Workbooks(Archivo.Name).Sheets("IRPF").Range("E27")
.Cells(UltimaFila + 4, 1) = Workbooks(Archivo.Name).Sheets("IRPF").Range("E28")
.Cells(UltimaFila + 5, 1) = Workbooks(Archivo.Name).Sheets("IRPF").Range("E29")
.Cells(UltimaFila + 1, 2) = Workbooks(Archivo.Name).Sheets("IRPF").Range("F25")
.Cells(UltimaFila + 2, 2) = Workbooks(Archivo.Name).Sheets("IRPF").Range("F26")
.Cells(UltimaFila + 3, 2) = Workbooks(Archivo.Name).Sheets("IRPF").Range("F27")
.Cells(UltimaFila + 4, 2) = Workbooks(Archivo.Name).Sheets("IRPF").Range("F28")
.Cells(UltimaFila + 5, 2) = Workbooks(Archivo.Name).Sheets("IRPF").Range("F29")
.Cells(UltimaFila + 1, 3) = Workbooks(Archivo.Name).Sheets("IRPF").Range("G25")
.Cells(UltimaFila + 2, 3) = Workbooks(Archivo.Name).Sheets("IRPF").Range("G26")
.Cells(UltimaFila + 3, 3) = Workbooks(Archivo.Name).Sheets("IRPF").Range("G27")
.Cells(UltimaFila + 4, 3) = Workbooks(Archivo.Name).Sheets("IRPF").Range("G28")
.Cells(UltimaFila + 5, 3) = Workbooks(Archivo.Name).Sheets("IRPF").Range("G29")
.Cells(UltimaFila + 1, 4) = Workbooks(Archivo.Name).Sheets("IRPF").Range("H25")
.Cells(UltimaFila + 2, 4) = Workbooks(Archivo.Name).Sheets("IRPF").Range("H26")
.Cells(UltimaFila + 3, 4) = Workbooks(Archivo.Name).Sheets("IRPF").Range("H27")
.Cells(UltimaFila + 4, 4) = Workbooks(Archivo.Name).Sheets("IRPF").Range("H28")
.Cells(UltimaFila + 5, 4) = Workbooks(Archivo.Name).Sheets("IRPF").Range("H29")
End With
Workbooks(Archivo.Name).Close
UltimaFila = UltimaFila + 1
End If
Next
End With
End With
ThisWorkbook.Sheets("COBROS Y PAGOS").Range("A1").Select
Application.ScreenUpdating = True
End Sub
1 Respuesta
Respuesta de Elsa Matilde
1