Saltar al contenido

Macro que grabe archivo de la forma nombre_fecha_hora y ..


Recommended Posts

publicado

Buenas noches

 

 

Bueno la idea es una macro que me grabe el archivo como  Archivo_dia_hora

cuando lo vuelva a abrir , machaque el archivo anterior y escriba  Archivo_nuevo dia_nueva hora

cosa que cuando lo vea sabre que es el ultimo y que ademas cree una copia de respaldo de la forma  Respaldo_Archivo_nuevo dia_nueva hora

no subi archivo pues cualquier archivo excel cumple la funcion creo.

 

gracias

 

 

 

publicado

Hola, Quizá no comprendo,...pero cuando se guardan los archivos hay en Detalla, o en propiedades del archivo la fecha de modificación cada vez que se cierra o se guarde el archivo allí ya existe la fecha para verificar lo que quieres.

publicado

Parece que no se entendio, gracias igual por responder

 

Supongamos que tengo un archivo llamado nota.xlsm

lo abro  , ingreso datos en el archivo y al grabar,

me lo graba la macro  

Nota_8-06-2016-1.27.54.xlsm

y ademas crea un respaldo

BKNota_8-06-2016-1.27.54.xlsm 

hoy lo vuelvo a abrir,

abro

Nota_8-06-2016-1.27.54.xlsm

ingreso datos y cuando termine lo graba la macro

Nota_10-06-2016-14.27.54.xlsm 

y me crea el respaldo 

BKNota_10-06-2016-14.27.54.xlsm 

 

y asi sucesivamente

 

cuando la macro graba sobre escribe la version anterior y la copia anterior

de esta forma deberian quedar siempre dos archivos

Nota_dia-hora .xlsm  y 

BKNota_dia-hora .xlsm

 

esto lo pregunte aqu mismo hace como 2 años lo busque varias veces pero

no me aparece al archivo solucion que me mandaron ede dia

el cual funcionaba perfectamente y perdi en un formateo

 

gracias

 

 

 

 

 

 

 

 

 

 

 

publicado

Sera que por aqui va bien??

Sub SaveAS() 
Dim MiArchivo As String 
MiArchivo = Range("A1") 
Application.DisplayAlerts = False 
ActiveWorkbook.SaveAS Filename:= _ 
"C:\TuRuta\" & MiArchivo, _ 
FileFormat:=xlWorkbookNormal, CreateBackup:=False 'Aqui se modifica el tipo de extension que deseas 
Application.DisplayAlerts = True 
End Sub

En A1 poner =HOY() y pon en formato de celda fecha y hora

publicado
En 10-06-2016 at 18:54 , Visor dijo:

Sera que por aqui va bien??


Sub SaveAS() 
Dim MiArchivo As String 
MiArchivo = Range("A1") 
Application.DisplayAlerts = False 
ActiveWorkbook.SaveAS Filename:= _ 
"C:\TuRuta\" & MiArchivo, _ 
FileFormat:=xlWorkbookNormal, CreateBackup:=False 'Aqui se modifica el tipo de extension que deseas 
Application.DisplayAlerts = True 
End Sub

En A1 poner =HOY() y pon en formato de celda fecha y hora

Algo  debo hacer mal...no me resulta como lo recuerdo

ademas , no tenia que ver con el rango de una celda , era de otra forma..

te mando el archivo gracias por tu tiempo

 

Nota.xlsm

publicado

Que tal si pruebas primero con un Msgbox lo que te sale allí debería ser el nombre del archivo que ya no depende del Rango A1 solo de código Vba

Sub SaveAS()
Dim FechaActual As Date
Dim Hora As Date
Dim MiArchivo As String
FechaActual = Date
Hora = Now
MiArchivo = Now ' Date '& Now
MsgBox MiArchivo

'Application.DisplayAlerts = False
'ActiveWorkbook.SaveAS Filename:= _
'"C:\TuRuta\" & MiArchivo, _
'FileFormat:=xlWorkbookNormal, CreateBackup:=False 'Aqui se modifica el tipo de extension que deseas
'Application.DisplayAlerts = True
End Sub

Si allí te parece bien, eliminas el msgbox y activas el resto de lineas eliminando las comillas

publicado

quiza tengas problemas porque el nombre del archivo lleva slashs / en la fecha con el codigo anterior, por lo que esto no se acepta en los nombres

con este codigo se logra lo que deseas pero 

Sub guardando()
nbre = Format(Now, "dd-mm-yy hh.mm.ss")
ruta = ActiveWorkbook.Path
n_arch = ActiveWorkbook.Name
n_hoja = ActiveSheet.Name
ActiveWorkbook.SaveAs Filename:=ruta & "\" & n_hoja & nbre & ".xls"', FileFormat:=xlCSV
ActiveSheet.SaveAs ruta & "\" & n_arch & nbre & ".xlsm"
End Sub

los archivos que se crean en el mismo lugar donde esta tu archivo, luego no se pueden abrir los archivos eso no se aun las razones

publicado
Hace 15 horas, Mauricio_ODN dijo:

Hola: ¡¡¡¡¡ zero-x !!!!!

Te Adjunto un ejemplo de como podria quedar!!

Saludos!!!

lunes, 13 de junio de 2016 15_57_40.xlsm

Hola Mauricio , me sale error al descargarlo , lo puedes subir otra vez por favor.

 

Lo siento, hay un problema

No podemos encontrar el elemento que estás intentando ver.

Código de error: 2S328/1

 

 

publicado

Hola de nuevo ¡¡¡¡¡ zero-x !!!!!

Subo el Archivo de nuevo

Este seria el codigo

Sub OldNewName()

'Definimos las Variables para elNombre del Archivo Nuevo

'Dim NewName As String
Dim Fecha As Date
Dim Texto1 As String
Dim Texto2 As String

Fecha = Range("A1").Value

Texto1 = Format(Now(), "hh_mm_ss")
Texto2 = Format(Now(), "Long Date")

'MsgBox Texto2 & "  " & Texto1

'Definimos el Nombre del Archivo Anterior

Dim OldName As String
OldName = ThisWorkbook.Name

'MsgBox OldName

On Error Resume Next

'Creamos el Archivo co el Nombre Nuevo

ActiveWorkbook.SaveAs Filename:=Texto2 & "  " & Texto1, _
        FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Application.DisplayAlerts = False

'Eliminamos el Archivo con el Nombre Anterior

Kill (OldName)
Application.DisplayAlerts = False

'Información opcional
MsgBox "Archivo Eliminado " & Chr(10) & OldName, vbInformation, "Control de Archivo"
MsgBox "Archivo Nuevo " & Chr(10) & ThisWorkbook.Name, vbExclamation, "Control de Archivo"

End Sub
 

lunes, 13 de junio de 2016 16_19_38.xlsm

publicado

hola , tengo un problema , baje tu archivo lo ppuse en una carpeta , lo ejecuto , ejecuto la macro y hace todo lo que se supone que hace , salen los dos mensajes , que borro el anterior y que creo el siguiente , pero luego veo en la carpeta y sigue el archivo oriiginal (osea como que lo realizo pero no realizo nada) , busque en el hd por si lo grabo en otro lado , y no hay nada , vi la rutina y no encuentro error...

 

puedes revisar

 

gracias

 

publicado

Hola mi Estimado zero-x

¡¡¡¡Que Pena Contigo por no preveer eso!!! Disculpame por favor

Mira Abre un Libro de Excel

desde ahí abre el archivo donde lo guardste en su Ubicación

esto con el Fin de que queda Guardado el directorio

Así debe de Funcionar

Saludos!!!

publicado

Mira

Abre un Libro nuevo de Excel

Desde ese Libro vas Menu Archivo Abrir

De ahí Vas Abrir el Archivo que estamos Trabajando donde lo guardaste

Al Abrir Lo ejecutas y Listo!!!

publicado

El archivo con el simple hecho de cerrarlo ejecuta las macros, ya que están en el Before Close del Workbook.

Trata con este nuevo ejemplo y me comentas. Si te sale error tomale un pantallazo y lo muestras, ya que no es posible definir el error solo con que digas "me sale error en tiempo de ejecución", ya que no especificas nada.

Prueba.zip

publicado

hola

me funciona muy bien , es justo lo que andaba buscando, ahora , en necesario que este ese rango en a1 y b2 , ¿se puede poner en otro lado ya que se usan las primeras 10 hojas de cada libro? , gracias por tu tiempo

publicado

hola  aaquino

tengo problemas con tu macro  , al ponerla en otro archivo  no hay caso que me resulte tu macro, la copio totalmente al nuevo archivo , ese si en ves de prueba le pongo el nombre de notas , cambio las referencias en las celdas pero no funciona , tu hoja esta en ingles , no se si es eso , o la carpeta , nada tiene que ver con activar las macros , estan activadas.

 

podrias revisar  por favor

 

publicado
Hace 10 horas, zero-x dijo:

hola  aaquino

tengo problemas con tu macro  , al ponerla en otro archivo  no hay caso que me resulte tu macro, la copio totalmente al nuevo archivo , ese si en ves de prueba le pongo el nombre de notas , cambio las referencias en las celdas pero no funciona , tu hoja esta en ingles , no se si es eso , o la carpeta , nada tiene que ver con activar las macros , estan activadas.

 

podrias revisar  por favor

 

Por lo que te entiendo, copiaste completamente las 3 macros que hice en el archivo que te adjunte. No se si te diste cuenta que hay una secuencia de macros en el evento "Before Close" del Workbook, no se si también copiaste eso.

Adicional te comento, yo tengo mi excel en inglés, por lo que puse esta línea en cada una de las macros

NombreActual = Sheet1.Range("A2")[/CODE]


Lo que puedes hacer es cambiarla en las 3 macros por lo siguiente:

[CODE]NombreActual = HojaX.Range("A2")[/CODE]

en HojaX debes sustituir la "X" por la hoja donde estén ubicados los datos de guardado en tu nuevo proyecto.

Sino, puedes subir el archivo que necesitas sea modificado, y con mucho gusto te lo modifico para que funcione.

Que quede claro que lo puedes subir con una simple muestra de los datos que ya tienes en el archivo, y yo te configuro las macros para que solo copies y pegues el contenido total de tu archivo.

Saludos.

publicado

Ves que te dije que no habías revisado TODO el proyecto.

Te faltaba añadir el proceso que estaba en el Workbook

En 21/6/2016 at 17:03 , aaquino dijo:

No se si te diste cuenta que hay una secuencia de macros en el evento "Before Close" del Workbook, no se si también copiaste eso.

 

Macros.zip

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.