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

macro para guardar archivo reemplazando existente

Estas en el tema de macro para guardar archivo reemplazando existente en el foro de Ofimática en Foros del Web. Hola que tal. Tengo una macro para gurdar archivos de excel el diversos formatos concatenado al nombre la fecha del sistema: Sub guardar() Dim arch() ...
  #1 (permalink)  
Antiguo 01/09/2011, 13:13
 
Fecha de Ingreso: julio-2011
Mensajes: 17
Antigüedad: 12 años, 9 meses
Puntos: 1
Pregunta macro para guardar archivo reemplazando existente

Hola que tal. Tengo una macro para gurdar archivos de excel el diversos formatos concatenado al nombre la fecha del sistema:

Sub guardar()
Dim arch() As String
Dim hoja() As String
Dim nombre As String
Dim nombre1 As String
Dim nombre2 As String
Application.DisplayAlerts = False
fechaf = " " & Format(Now, "dd-mm-yy hhmmss")
ruta = ActiveWorkbook.Path
n_hoja = ActiveSheet.Name
n_arch = ActiveWorkbook.Name
hoja = Split(n_hoja, " ")
nombre = ruta & "\" & hoja(0) & fechaf & ".csv"
ActiveSheet.SaveAs Filename:=nombre, FileFormat:=xlCSV
arch = Split(n_arch, " ")
nombre1 = ruta & "\" & arch(0) & fechaf & ".xlsx"
ActiveWorkbook.SaveAs Filename:=nombre1, FileFormat:=51
nombre2 = ruta & "\" & arch(0) & fechaf & ".xlsm"
ActiveWorkbook.SaveAs Filename:=nombre2, FileFormat:=52

'Application.DisplayAlerts = True
End Sub


Necesito que el archivo nuevo remplace al anterior, lla que el código tal cual, me va generando un archivo cada y que cierro excel (call guardar()), también me gustaría poder mandar llamar el procedimiento de guardar al darle clic en el botón guardar ¿se podrá? intente con Workbook_BeforeSave pero me trababa excel. Gracias de antemano!!

PD. El nombre del libro Debe de ser Libro 01092011 132315.xslm y el de la hoja es: Hoja 101092011 132315. (para posibles prubebas)
  #2 (permalink)  
Antiguo 01/09/2011, 15:53
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Respuesta: macro para guardar archivo reemplazando existente

Hola Alex07_89, creo que el problema se genera al tener un nombre variable por que le incluis la fecha en el, entonces salvo que guardes el archivo 2 veces el mismo dia, siempre sera un nombre distinto, incluso varios archivos con distintas fechas. Como sabe excel que archivo reemplazar?

Si eliminas la fecha y el pones un nombre unico como por ej "backup excel" te sera mas facil el procedimiento.

fijate el ejemplo que publique en las faq`s, nro 14: http://www.forosdelweb.com/f90/faq-s-ofimatica-518966/

saludos
__________________
-- Nunca te des por vencido, aún vencido -- Web
  #3 (permalink)  
Antiguo 02/09/2011, 09:21
 
Fecha de Ingreso: julio-2011
Mensajes: 17
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: macro para guardar archivo reemplazando existente

Hola que tal gracias por interesarte en contestar, bueno he revisado tu código y creo que es útil, ahora lo que se me ocurre es adaptar tu código y crear otra macro:

1 hacer un guardar como de "mi archivo original" como "archivo nombre constante"

2 eliminar "mi archivo original"

3 renombrar "archivo nombre constante" concatenando la fecha del sistema

(alguna sugerencia o inconveniente que veas).

A por cierto que me puedes decir sobre ejecutar el o los procedimientos al clikear boton guardar.

Pensaras que por que tanto salto estando parejo... pero realmente me interesa que el usuario pueda ver la ultima fecha de modificacion del archivo... Salu2 y GRacias Otra vez!!
  #4 (permalink)  
Antiguo 02/09/2011, 15:18
 
Fecha de Ingreso: julio-2011
Mensajes: 17
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: macro para guardar archivo reemplazando existente

Genial!! I got it!! ::Feliz:: asi quedo por si a alguien le interesa. GRacias al código del amigo Pablus00 me di una idea y creo que funcionó:

Sub guardar()
Dim arch() As String
Dim hoja() As String
Dim nombre As String
Dim nombre1 As String
Dim nombre2 As String
Application.DisplayAlerts = False
fechaf = " " & Format(Now, "dd-mm-yy hhmmss")
ruta = ActiveWorkbook.Path
n_hoja = ActiveSheet.Name
n_arch = ActiveWorkbook.Name
n_h = ActiveSheet.Name
n_a = ActiveWorkbook.Name
ex = Split(n_a, ".")
ex2 = Split(n_h, ".")
hoja = Split(n_hoja, " ")
nombre = ruta & "\ArchCVS\" & hoja(0) & fechaf & ".csv"
ActiveSheet.SaveAs Filename:=nombre, FileFormat:=xlCSV
arch = Split(n_arch, " ")
nombre1 = ruta & "\ArchExcel\" & arch(0) & fechaf & ".xlsx"
ActiveWorkbook.SaveAs Filename:=nombre1, FileFormat:=51
nombre2 = ruta & "\" & arch(0) & fechaf & ".xlsm"
ActiveWorkbook.SaveAs Filename:=nombre2, FileFormat:=52
Kill (ruta & "\ArchExcel\" & ex(0) & ".xlsx")
Kill (ruta & "\" & ex(0) & ".xlsm")
Kill (ruta & "\ArchCVS\" & ex2(0) & ".csv")

'Application.DisplayAlerts = True
End Sub

Solo es necesario comentar los kill la primera vez... y listo. De mandar llamar el archivo antes de guardar mejor me olvido al fin y al cabo el usuario alguna vez lo cerrará jeje

::EMOCIÓN::
  #5 (permalink)  
Antiguo 05/09/2011, 09:33
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Respuesta: macro para guardar archivo reemplazando existente

;) me alegra que haya servido, saludos
__________________
-- Nunca te des por vencido, aún vencido -- Web

Etiquetas: macro
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 21:16.