Foros del Web » Soporte técnico » Ofimática »

Macro

Estas en el tema de Macro en el foro de Ofimática en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 09/03/2007, 09:57
AvP
 
Fecha de Ingreso: noviembre-2004
Mensajes: 87
Antigüedad: 19 años, 5 meses
Puntos: 0
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.
  #2 (permalink)  
Antiguo 11/03/2007, 05:04
gmansi
Invitado
 
Mensajes: n/a
Puntos:
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
  #3 (permalink)  
Antiguo 11/03/2007, 05:05
gmansi
Invitado
 
Mensajes: n/a
Puntos:
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
  #4 (permalink)  
Antiguo 15/03/2007, 15:39
AvP
 
Fecha de Ingreso: noviembre-2004
Mensajes: 87
Antigüedad: 19 años, 5 meses
Puntos: 0
Re: Macro

Ok, gracias gmansi por la ayuda, he logrado hacerlo.
Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:40.