UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

1RESUELTO Agregar fecha al guardar archivo el 21/05/14, 11:01 am

wibly


Hola a todos!

Muchas veces me gusta guardar los archivos agregando la fecha (actual) al final, para que luego sea facil ordenar segun nombre y fecha. El formato de fecha que habitualmente utilizo es yyyy-mm-dd.

Buscando en los temas y encontré uno en el que se trató este tema de añadir la fecha al nombre de un archivo, en el cual Raul hizo el aporte de este código:
Código:
Sub GuardarCopiaFechada()
   DatoFechador = Format(Date, "dd-mm-yyyy")
   FilePath = ThisWorkbook.Path & "/" & DatoFechador & "-" & ThisWorkbook.Name
   ThisWorkbook.SaveCopyAs (FilePath)
End Sub

el cual guarda una copia del archivo, cuyo nombre comienza inicialmente con la fecha seguida del nombre del archivo.

dejo enlace al post original de Raúl (railar) AQUI

El código funciona bien pero el tema es que quisiera que la fecha quede al final, siguiendo esta estructura:
Nombreoriginal_Fecha(yyyy-mm-dd).extensión
y sea guardado en la misma ruta

Hice este cambio en el código:
Código:
Sub GuardarCopiaFechada()
   DatoFechador = Format(Date, "yyyy-mm-dd")
   FilePath = ThisWorkbook.Path & "/" & ThisWorkbook.Name & "_" & DatoFechador
   ThisWorkbook.SaveCopyAs (FilePath)
End Sub

pero de esta manera la fecha forma parte de la extensión. Supongo que el problema es que ThisWorkbook.Name debe incluir la extensión del archivo... ¿saben como puedo resolverlo?, o sea, cómo puedo llevar la extensión al final, luego de la fecha actual.

Saludos

Adrián

2RESUELTO Re: Agregar fecha al guardar archivo el 21/05/14, 09:44 pm

Igtelo


Hola Adrián.

Así es, la bronca está en el nombre del archivo, usando Reemplazar y Largo ya te queda.

Código:
Sub Guardar()
'Guarda archivo con: Nombre, fecha y extensión

fecha = Format(Date, "yyyy-mm-dd")
ruta = ThisWorkbook.Path & "\"
w = Application.Replace(ThisWorkbook.Name, Len(ThisWorkbook.Name)- 4, 5, "_") & fecha & ".xlsm"

ThisWorkbook.SaveCopyAs (ruta & w)

End Sub

Saludos
Nacho Téllez

3RESUELTO Re: Agregar fecha al guardar archivo el 22/05/14, 07:56 am

wibly


Perfecto Nacho! gracias!,

Te molesto sobre la interpretación de la siguiente línea del código:

Código:
w = Application.Replace(ThisWorkbook.Name, Len(ThisWorkbook.Name)- 4, 5, "_") & fecha & ".xlsm"

Obviamente esta línea toma el nombre del archivo sin la extención, le agrega el guión (en realidad reemplaza los últimos 5 caracteres por "_"), concatena la fecha y al final le pone la extensión ".xlsm"... pero ¿como funciona en detalle?, no entiendo el funcionamiento de la parte "-4, 5,"... intenté cambiando los valores en el código y no llego a concluir claramente cómo operan estos parámetros. Supongo que el -4 se posiciona en el caracter n-4 y luego el 5 indica cuantos caracteres se reemplazan... ¿me podrás aclarar un poco esto?

Qué duro que soy para Visual Basic... miro la ayuda pero aún así me cuesta mucho.

Un abrazo!

Adrián

4RESUELTO Re: Agregar fecha al guardar archivo el 22/05/14, 11:36 am

Igtelo


Que tal Adrián.

En el archivo adjunto hay una macro que se llama Pasos, ejecútala con tecla F8 y en la hoja de cálculo te va a mostrar el resultado de cada instrucción, también te dejo la fórmula que utilizaríamos si trabajáramos en la hoja de cálculo.

Abre 2 ventanas como se ve en la imagen adjunta.

Saludos
Nacho
Archivos
Adrian.xlsm
No tienes los permisos para descargar los archivos.
(184 KB)

5RESUELTO Re: Agregar fecha al guardar archivo el 22/05/14, 05:58 pm

wibly


Excelentísimo Nacho!!!, hasta llegué a entenderlo!

Un abrazo!

Adrián

6RESUELTO Re: Agregar fecha al guardar archivo el 22/05/14, 07:00 pm

Igtelo


Hola Adrián.

Que bien que se entendió, con éste método podemos ayudarnos para analizar cualquier macro, sólo sustituimos la variable por alguna celda en la hoja y vamos viendo como funciona.
También dentro de VB se puede ver como van funcionando las variables al pasar el puntero del mouse o con la ventana de inspección en modo de ejecución paso a paso...

Saludos
Nacho.

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.