Hace poco tuve un problema en cargar un archivo Excel que estaba muy grande, había muchas soluciones pero la mas inmediata era fraccionar el archivo grande en archivos de Excel pequeños.
Como siempre la intención es compartir la solución que a mas de alguien puede servir, aunque en la web hay muchas soluciones.
Normalmente en Excel no viene habilitado la pestaña de "Programador", para el ejercicio estoy utilizando "Microsotf Office Professional Plus 2010", ubicamos la opciones de : "Archivo", "Opciones" y la opción de "Personalizar cinta de opciones"
Una vez habilitado creamos una función en este caso la llamaremos: SplitSheets()
Vamos a leer los datos de la hoja no.1 ( Sheets(1) ), generamos archivos pequeños de 5000 lineas. Para ello utilizamos la variable TotalLinea, veamos como queda el código.
Sub SplitSheets()
Dim lLoop As Long, lCopy As Long
Dim LastRow As Long
Dim wbNew As Workbook
Dim TotalLinea As Long
TotalLinea = 4999
With ThisWorkbook.Sheets(1)
LastRow = .Range("A" & Rows.Count).End(xlUp).Row
For lLoop = 2 To LastRow Step TotalLinea
lCopy = lCopy + 1
Set wbNew = Workbooks.Add
.Range(.Cells(1, 1), .Cells(1, .Columns.Count)).EntireRow.Copy Destination:=wbNew.Sheets(1).Range("A1")
.Range(.Cells(lLoop, 1), .Cells(lLoop + TotalLinea - 1, .Columns.Count)).EntireRow.Copy Destination:=wbNew.Sheets(1).Range("A2")
Columns("D:D").Select
Selection.ColumnWidth = 50
Cells.Select
Cells.EntireColumn.AutoFit
Cells.EntireRow.AutoFit
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\CargaMasiva" & lCopy, FileFormat:=xlExcel8
wbNew.Close
Next lLoop
End With
End Sub
Una vez creado la función, ponemos un botón en el Excel y enlazamos la función SplitSheets(), como se ve el ejemplo de la imagen.
Espero sea de utilidad!!
No hay comentarios.:
Publicar un comentario