Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Ofimática (http://www.forosdelweb.com/f90/)
-   -   Macro (http://www.forosdelweb.com/f90/macro-471522/)

AvP 09/03/2007 09:57

Macro
 
Que tal, espero alguien me pudiera ayudar con lo siguiente:
He creado una macro para que me guarde un archivo de excel en la ubicacion actual y tambien me crea una copia en otro lugar.
Lo que no se es como hacer para que la copia se guarde con el mismo nombre del archivo original sin tener que estar escribiendolo.
pongo el codigo:

Sub GuardarAntesCerrar()
ActiveWorkbook.Save
ActiveWorkbook.SaveCopyAs "ruta y nombre de archivo copia"
End Sub

De antemano gracias.

gmansi 11/03/2007 05:04

Re: Macro
 
No es difícil usa

ActiveWorkbook.Name para cargar en una variable el nombre de tu libro actual

ejemplo

Nombreaguardar=ActiveWorkbook.Name

luego usas

ActiveWorkbook.SaveCopyAs "ruta" + Nombreaguardar

gmansi 11/03/2007 05:05

Re: Macro
 
Mira este ejemplo:

http://www.excelworker.virtuabyte.cl...id=3&Itemid=27

Crear Hoja, Renombrarla, Copiarla y Eliminarla



En el ejemplo se crea una nueva Hoja (Método Add), se obtiene su número de índice (Propiedad Index) y se le da el nombre “Ejemplo” (Propiedad Name). Luego se mueve la hoja creada a continuación de la Hoja2 (Método Move) y se obtiene nuevamente el número de índice de la hoja debido a que cambió de posición. Por último la hoja nueva llamada “Ejemplo” se copia a continuación de la Hoja2 (Método Copy) y a la copia se le da el nombre “Copia de Ejemplo” (Propiedad Name) para luego eliminar la hoja llamada “Ejemplo” (Método Delete).





Sub CreaHoja()



Dim indice As Integer



Application.ActiveWorkbook.Worksheets.Add

indice = Application.ActiveWorkbook.ActiveSheet.Index

Application.ActiveWorkbook.ActiveSheet.Name = "Ejemplo"



Application.ActiveWorkbook.Worksheets(indice).Move After:=Hoja2



indice = Application.ActiveWorkbook.ActiveSheet.Index



Application.ActiveWorkbook.Worksheets(indice).Copy After:=Hoja2



Application.ActiveWorkbook.Worksheets(indice).Name = "Copia de Ejemplo"



Application.ActiveWorkbook.Worksheets(indice + 1).Delete



End Sub

AvP 15/03/2007 15:39

Re: Macro
 
Ok, gracias gmansi por la ayuda, he logrado hacerlo.
Un saludo


La zona horaria es GMT -6. Ahora son las 05:07.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.