Creación de archivo

Hola experto. He visto varias respuestas tuyas y creo me puedes ayudar.
Mi consulta es la siguiente:
Tengo un libro "MMMM.xls", en el cual en la celda "C5" tengo una fecha y en "A1:X30" tengo datos.
¿Sería posible, estando en MMMM.xls, mediante una macro asignada a una autoforma, generar un archivo con la fecha que tengo en "C5" (ejemplo: mifecha.xls)y que en ese archivo generado se copiaran los datos, formato de celda y ancho de columnas del rango "A1:X30", cuando ejecute la autoforma?.
En el libro tengo otras hojas y otras macros, pero lo que necesito es sólo los datos de una de las hojas y que el archivo generado sea el de la fecha de la celda c5.
También una vez generado ese archivo deseo seguir trabajando en MMMM.xls.
Gracias anticipadas.

1 respuesta

Respuesta
1
Esta rutina crea libro con contenido de una hoja. Si se presenta error (porque el formato de fecha no sea válido como nombre de archivo o ya existe archivo con ese nbre, etc) mostrará la ventana de 'Guardar como'.
Se coloca en un módulo y luego asignas esta rutina a tu autoforma.
Sub copiahoja()
'macro creada por Elsamatilde 6/09/05
Dim mihoja, minbre, miruta As String
Dim wb
miruta = ThisWorkbook.Path
mihoja = "Hoja4"
minbre = Trim(Sheets("Hoja4").Range("C5").Value)
Sheets(mihoja).Copy
Application.DisplayAlerts = False
Set wb = ActiveWorkbook
On Error Resume Next
With wb
.SaveAs miruta & "\" & minbre & ".xls"
Application.DisplayAlerts = True
.Close True
End With
Set wb = Nothing
Sheets("Hoja4").Select
End Sub
Hola Elsa.
Funciona de maravilla, pero lo que yo deseo es que me genere el archivo automáticamente una vez que ejecuto la autoforma, sin que me pregunte nada. Ese archivo generado debe de tener el nombre del dato que tengo en "C5" que es una fecha.
¿Podría ser así?.
Saludos.
No te preguntará nada... siempre y cuando no presente error.
Como es un campo fecha, el formato con barras (dd/mm...) no es un formato válido para nombres de libros Excel, de ahí que al presentarse ese 'error' te da la opción de ingresar otro nombre. Si ese es tu caso debieras 'armar' con el contenido de esa celda una variable con otro formato (_ por ejemplo)
Otro motivo por el que pueda presentarse un error es si ya existe un libro con ese nombre.
Si no es eso no te preguntará nada (eso debiera...) Avísame si estoy en lo correcto.
Efectivamente, tienes razón, si en esa celda tengo otro dato que no sea una fecha se graba sin problemas.
Ahora, puesto que no se como hacerlo, ¿cómo puedo armar esa variable? Intenté hacerlo cambiando el formato de la celda pero no me funciona.
Un saludo.
Te envío la rutina completa, (si bien solo hay que agregar una línea y retocar otra) para evitar errores.
Utilicé guiones, por lo que el nombre te quedará con este formato: dd-mm-aa (o aaaa) Puedes cambiar el orden en la línea donde veas:
valor = Day......
Sub copiahoja()
'macro creada por Elsamatilde 6/09/05
Dim mihoja, minbre, miruta, valor As String
Dim wb
miruta = ThisWorkbook.Path
mihoja = "Hoja4"
minbre = Trim(Sheets("Hoja4").Range("C5").Value)
valor = Day(minbre) & "-" & Month(minbre) & "-" & Year(minbre)
Sheets(mihoja).Copy
Application.DisplayAlerts = False
Set wb = ActiveWorkbook
On Error Resume Next
With wb
.SaveAs miruta & "\" & valor & ".xls"
Application.DisplayAlerts = True
.Close True
End With
Set wb = Nothing
Sheets("Hoja4").Select
End Sub
Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas