Generar Ficheros Excel Automáticamente

Buenos días:
Tengo un fichero excel, que contiene dos hojas( A y B). Me gustaría saber como hacer una macro para que a partir de este fichero y haciendo un click en algún botón insertado en una de las horas, se me generasen varios ficheros más (idénticos al primero) pero con distintos nombres. Es decir mi fichero se llama 20000, y luego quiero que me genere nuevos libros pero con distintos nombres que están preasignados: otro sería el 22000, otro 25000, otro 32500 y así sucesivamente hasta unos 150 libros.
¿Me puedes ayudar? Gracias por todo

1 respuesta

Respuesta
1
¿Los nombres tienen un consecutivo?, o son aleatorios. ¿Van cada 500? ¿O algo así?
Hola kimari. Son aleatrorios, pero yo sé cuales son de antemano. De hecho tengo una lista en excel donde los tengo archivados: el primero es un 17239 y el ultimo un 83311. Entre ellos, que son los extremos, hay 150 números más (no tienen punto los números). Si necesita más cosas, ya sabes. Gracias de antemano por todo.
Entonces tienes un listado, ¿este listado esta en una columna?, necesitas generar todos los 150 arhios al tiempo, solo algunos
Los tengo en una columna y hay veces que necesitaría crearlas todas al mismo tiempo (la mayoría de las veces) y otras veces no, sólo algunos.
¿El litado lo tienes en otro libro?, o en una hoja del mismo que necesitas hacer dupicados
Lo puedo tener donde tú me digas. Ahora está en uno independiente, que sería el maestro por llamarlo de una manera, pero insisto, que puede estar donde tú creas oportuno.
En primer lugar debes de poner en la hoja No.3 no importa el nombre, la lista de los documentos a crear, supongo que le pondrás encabezado así que los documentos empezaran desde la celda "A2".
Crea una carpeta para que guardes lo documentos, debe de estar en la misma ubicación del documento maestro, se debe llamar copias, modifica el nombre si quieres en el código.
Abre el editor de vb alt+f11, dale insertar nuevo modulo y pega este código.
Sub Copias()
    Dim nombre As String
    Dim n As Integer, f As Integer
    n = Worksheets(3).Range("A1").CurrentRegion.Rows.Count
    f = 2
    Application.ScreenUpdating = False
    Application.Calculation = xlManual
    While f <= n
    nombre = Worksheets(3).Cells(f, 1).Value
    Sheets(Array("Hoja1", "Hoja2")).Copy
    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\copias\" & nombre
    ActiveWorkbook.Close
    f = f + 1
    Wend
    Application.Calculation = xlAutomatic
    Application.ScreenUpdating = True   
End Sub
Ya tienes la macro, ahora la puedes asignar a un botón, o ejecutarla directamente presionando alt+f8, seleccionando "copias" y ejecutar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas