............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

Pegar celdas en archivos nuevos

Ver el tema anterior Ver el tema siguiente Ir abajo

Pegar celdas en archivos nuevos

Mensaje por moctezuma48 el Vie Oct 14, 2011 4:55 pm

¡Hola!

Necesitaría vuestra ayuda para lo siguiente:

Tengo una hoja de datos y quería dividirla en partes. Entonces quería hacer una macro para que cada 20 filas me las copie en un archivo nuevo, y me vaya nombrando dichos archivos consecutivamente, por ejemplo prueba1, prueba2, ...

Muchas gracias por la ayuda



moctezuma48

Masculino Cantidad de envíos : 43
Edad : 48
Ciudad - Pais : ESPAÑA
Version de Excel : 2007
Fecha de inscripción : 29/06/2011

Volver arriba Ir abajo

Re: Pegar celdas en archivos nuevos

Mensaje por Cacho R el Vie Oct 14, 2011 7:03 pm

¿Podrías mostrar algún tipo de macro o de desarrollo -que tú hayas hecho- respecto a la selección de los datos cada 20 filas?...

Si muestras eso (lo que dará un indicio de las filas y las columnas a considerar), será más sencillo completarte el código con el tratamiento de archivos que estaría restando.

Saludos, Cacho R.
avatar
Cacho R
Moderador
Moderador

Masculino Cantidad de envíos : 210
Ciudad - Pais : Buenos Aires
Version de Excel : Desde Multiplan (pre-Excel) hasta 2010
Fecha de inscripción : 29/06/2011

Volver arriba Ir abajo

Re: Pegar celdas en archivos nuevos

Mensaje por moctezuma48 el Sáb Oct 15, 2011 11:11 am

Lo que tengo ahora mismo es esto:

Sub prueba()
Application.ScreenUpdating = False
Dim miFila&, miCol&
Dim miRango As Range
n = 0
miCol = 52
For miFila = 1 To 280
Set miRango = Range(miFila + n, miCol)
miRango.Copy



n = n + 20
Next miFila
Application.ScreenUpdating = False
End Sub

Lo que quiero saber es cómo copiar el rango que va ejecutando el bucle cada vez en un nuevo archivo.

Muchas gracias por vuestra ayuda

moctezuma48

Masculino Cantidad de envíos : 43
Edad : 48
Ciudad - Pais : ESPAÑA
Version de Excel : 2007
Fecha de inscripción : 29/06/2011

Volver arriba Ir abajo

Re: Pegar celdas en archivos nuevos

Mensaje por Cacho R el Sáb Oct 15, 2011 12:27 pm

Hola! moctezuma48. Debo decirte que la expresión:

Range(miFila + n, miCol)

no representa absolutamente nada. De hecho: si intentas ejecutar el código publicado verás que en la línea referida obtienes un error.

¿Qué deducimos de lo visto?... Dos cosas:

1º) Comenta, por favor, que es lo que has querido representar con la línea de código que estamos analizando, para poder explicarte cual es tu error y cual es la forma correcta de referir un rango.

2º) Por lo dicho, entonces, no se puede deducir de tu código cual es el rango de datos sobre el que trabajar: ¿Podrías expresarlo con tus propias palabras?

O sea: parecería que el rango de filas es 1 a 280 (este "280", ¿Es fijo?)...
Pero nada puede decirse del rango de columna: ¿Será desde la A hasta la AZ?...

Aguardo tus comentarios.
Saludos, Cacho R.
avatar
Cacho R
Moderador
Moderador

Masculino Cantidad de envíos : 210
Ciudad - Pais : Buenos Aires
Version de Excel : Desde Multiplan (pre-Excel) hasta 2010
Fecha de inscripción : 29/06/2011

Volver arriba Ir abajo

Re: Pegar celdas en archivos nuevos

Mensaje por moctezuma48 el Sáb Oct 15, 2011 12:55 pm

Al poner Range(miFila + n, miCol) lo que quiero hacer es ir sumando de 20 en 20 las filas al ir incrementando el contador.

El primer rango del bucle sería A1:AZ20
El segundo sería A20:AZ40 ...

Y así hasta A260:AZ280

Espero tu siguiente respuesta

moctezuma48

Masculino Cantidad de envíos : 43
Edad : 48
Ciudad - Pais : ESPAÑA
Version de Excel : 2007
Fecha de inscripción : 29/06/2011

Volver arriba Ir abajo

Re: Pegar celdas en archivos nuevos

Mensaje por Cacho R el Sáb Oct 15, 2011 9:49 pm

Fíjate, moctezuma, que tal te va colocando el siguiente código en un módulo común:

Código:
Sub GenerarArchivos()
Dim myFolder As String, tmp As String
Dim fila As Long, LR As Long

myFolder = ThisWorkbook.Path
If myFolder = "" Then
  MsgBox "Debes guardar este libro."
  Exit Sub
End If
myFolder = ThisWorkbook.Path & "\DeA20"

Select Case Dir(myFolder, vbDirectory) = ""
Case False
  tmp = myFolder & "\*.*"
  If Dir(tmp) <> "" Then Kill tmp
Case True
  MkDir myFolder
End Select

Application.ScreenUpdating = False
fila = 1
LR = [a1].SpecialCells(xlLastCell).Row

Do
  Cells(fila, "a").Range("a1:az20").Copy
  Workbooks.Add xlWBATWorksheet
  [a1].PasteSpecial xlPasteValues: [a1].PasteSpecial xlPasteFormats
  ActiveWorkbook.Close True, myFolder & "\File" & Format(1 + (fila - 1) / 20, "00")
  fila = 20 + fila
Loop Until fila > LR

Application.ScreenUpdating = True
MsgBox "Proceso terminado", vbExclamation
End Sub
Saludos, Cacho R.
avatar
Cacho R
Moderador
Moderador

Masculino Cantidad de envíos : 210
Ciudad - Pais : Buenos Aires
Version de Excel : Desde Multiplan (pre-Excel) hasta 2010
Fecha de inscripción : 29/06/2011

Volver arriba Ir abajo

Re: Pegar celdas en archivos nuevos

Mensaje por moctezuma48 el Lun Oct 17, 2011 3:47 pm

¡¡ Muchas gracias !!

Ya lo he estado probando, he hecho algunas modificaciones (para guardar el archivo donde a mí me interesa) y funciona perfectamente.

Un saludo

moctezuma48

Masculino Cantidad de envíos : 43
Edad : 48
Ciudad - Pais : ESPAÑA
Version de Excel : 2007
Fecha de inscripción : 29/06/2011

Volver arriba Ir abajo

Re: Pegar celdas en archivos nuevos

Mensaje por Cacho R el Lun Oct 17, 2011 9:29 pm

moctezuma48 escribió:¡¡ Muchas gracias !!... y funciona perfectamente...
¡Muchas gracias por tu devolución, y será hasta la próxima.

Saludos, Cacho R.
avatar
Cacho R
Moderador
Moderador

Masculino Cantidad de envíos : 210
Ciudad - Pais : Buenos Aires
Version de Excel : Desde Multiplan (pre-Excel) hasta 2010
Fecha de inscripción : 29/06/2011

Volver arriba Ir abajo

Re: Pegar celdas en archivos nuevos

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.