Separar base de datos Excel en archivos independientes
Para solicitar de su apoyo con el siguiente caso: Tengo una pequeña base de datos en excel la cual debo dividir en 3,4 o 5 partes (según sea necesario)y guardar cada bloque en un archivo diferente con la teminacion de un consecutivo para que no se sobreescriban, el problema en resumen es que el resultado de la división de los renglones en muchas ocasiones no es un numero entero y lo que busco es que si los registros por ejemplo: son 17 y lo quiero dividir en 3 partes me genere 3 archivos.
El primero y segundo de 5 renglones y el tercero de 7 es decir que en el archivo final ponga el resto de los renglones. El código que tengo ya hace la correcta división sin embargo me genera un 4 archivo con los 2 registros sobrantes. Mucho agradezco el apoyo que me puedan brindar.. Adjunto código y archivo de ejemplo.
Sub Test() Dim wb As Workbook Dim ThisSheet As Worksheet Dim NumOfColumns As Integer Dim RangeToCopy As Range Dim RangeOfHeader As Range Dim WorkbookCounter As Integer Dim RowsInFile Application.ScreenUpdating = False 'Initialize data Set ThisSheet = ThisWorkbook.ActiveSheet NumOfColumns = ThisSheet.UsedRange.Columns.Count WorkbookCounter = 1 RowsInFile = 5 'ejemplo 5 renglones por archivo incluyen el encabezado 'Copy the data of the first row (header) Set RangeOfHeader = ThisSheet.Range(ThisSheet.Cells(1, 1), ThisSheet.Cells(1, NumOfColumns)) For p = 2 To ThisSheet.UsedRange.Rows.Count Step RowsInFile - 1 Set wb = Workbooks.Add 'Paste the header row in new file RangeOfHeader.Copy wb.Sheets(1).Range("A1") 'Paste the chunk of rows for this file Set RangeToCopy = ThisSheet.Range(ThisSheet.Cells(p, 1), ThisSheet.Cells(p + RowsInFile - 2, NumOfColumns)) RangeToCopy.Copy wb.Sheets(1).Range("A2") 'Save the new workbook, and close it wb.SaveAs ThisWorkbook.Path & "\test" & WorkbookCounter wb.Close 'Increment file counter WorkbookCounter = WorkbookCounter + 1 Next p Application.ScreenUpdating = True Set wb = Nothing End Sub