Macro de excel para extraer cada 250 lineas en hojas diferentes

Buenas tardes.

Tengo una hoja excel con más de 6000 lineas, ¿como podría hacer con una macro u otro sistema para poder extraer de 250 en 250 lineas en hojas diferentes?

Sería para poder utilizarlo muy amenudo, ya que es para poder extraer datos cada 2-3 días, por lo que me interesaría que fuese algo fácil y que pudiera guardar en el ordenador para utilizarlo en varios libros o excel.

Gracias por su ayuda.

Por cierto mi excel es el 2007

Reciban un cordial saludo.

Respuesta
1

Para poder ayudarte mejor necesito aclaraciones:

¿Desde qué fila empiezan tus datos?

¿Cuál es la primera columna de tus datos? la A.... 

Buenos días Luis.

Efectivamente...

La fila empieza en el número 1

En la columna A están los nombres y apellidos

En la columna B están los teléfonos

En la columna C están los emails

Gracias de antemano por su ayuda.

Te mando la solución con esta macro. En mi ejemplo tenemos un archivo excel y en una pestaña llamada "hoja1" (esto lo puedes cambiar) tenemos esa base de datos de 3 columnas y n filas. Al ejecutar esta macro te lo pasará a otras pestañas de 250 en 250, esas nuevas pestañas las llamará: #1, #2 ...

Sub proceso()
'por luismondelo
c = 1
Sheets("hoja1").Select
filafin = Range("a65000").End(xlUp).Row
Range("a1").Select
Do While ActiveCell.Row < filafin
Range(ActiveCell, ActiveCell.Offset(249, 2)).Copy
Sheets.Add after:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
ActiveSheet.Name = "#" & c
c = c + 1
Range("a1").PasteSpecial xlPasteValues
Sheets("hoja1").Select
ActiveCell.Offset(250, 0).Select
Loop
End Sub

recuerda valorar mi trabajo por favor para finalizar la consulta

1 respuesta más de otro experto

Respuesta

Stleon (y Luis). También podrías intentar:

Sub ExtraerDeA250()
qRows = 250
Set lCell = Cells(Rows.Count, "a").End(xlUp)
Workbooks.Add -4167
ActiveWorkbook.Worksheets.Add , ActiveWorkbook.Worksheets(1), _
Application.RoundUp(lCell.Row / qRows, 0) - 1
For i = 1 To lCell.Row Step qRows
ActiveWorkbook.Sheets((i + qRows - 1) / qRows).[a1].Resize(qRows, 3) = _
lCell.Parent.Cells(i, "a").Resize(qRows, 3).Value
Next
Application.ScreenUpdating = True
Set lCell = Nothing
End Sub

El parámetro qRows vale 250 para el ejemplo mostrado... Pero si deseas cambiar la cantidad de líneas por hoja, simplemente puedes cambiar ese 250 por otro valor.

Perdón, pero me "comí" una línea del código. Entonces el "bueno" es:

Sub ExtraerDeA250()
qRows = 250
Set lCell = Cells(Rows.Count, "a").End(xlUp)
Application.ScreenUpdating = False
Workbooks.Add -4167
ActiveWorkbook. Worksheets. Add, ActiveWorkbook. Worksheets(1), Application. RoundUp(lCell.Row / qRows, 0) - 1
For i = 1 To lCell.Row Step qRows
ActiveWorkbook.Sheets((i + qRows - 1) / qRows).[a1].Resize(qRows, 3) = lCell.Parent.Cells(i, "a").Resize(qRows, 3).Value
Next
Application.ScreenUpdating = True: Set lCell = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas