Saltar al contenido

Macro que grabe archivo de la forma nombre_fecha_hora y ..


Recommended Posts

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

 

 

 

Enlace a comentario
Compartir con otras webs

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.

Enlace a comentario
Compartir con otras webs

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

 

 

 

 

 

 

 

 

 

 

 

Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

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

 

 

Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

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

 

Enlace a comentario
Compartir con otras webs

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!!!

Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

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

 

Enlace a comentario
Compartir con otras webs

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.

Enlace a comentario
Compartir con otras webs

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

Enlace a comentario
Compartir con otras webs

Archivado

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

  • 97 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • Hola que tal amigos programadores por favor me podrían ayudar con una macro que me genere un archivo CSV delimitado por comas, la estructura del archivo CSV no deberá llevar encabezado, los datos del archivo CSV serán obtenidos de la hoja “Datos”. En la columna A: deberá tener la clave clues que se toma de la columna B de la hoja Datos En la Columna B: el Código (son 230 codigos que van del rango G1:IB1 de la hoja datos) En la Columna C: el valor almacenado a su correspondiente al código y clues En la Columna D: el número del mes que se obtendrá de la de la columna E de la hoja Datos En la Columna E: el año que se tomará de la columna F de la hoja de Datos   Son 230 códigos por lo que la macro generará 230 filas por cada clave clues que tenga la hoja Datos En el archivo anexo una hoja llamada CSV para que vean la estructura que tendrá, el archivo CSV estará delimitado por comas   Les agradecería mucho que me ayuden por favor, Dios los bendiga Exportar datos a csv.xlsx
    • Hola buenas tardes.   Debido al trabajo debo estar comparando en un periodo unos archivos dentro de una carpeta o subcarpeta. en base a la fecha de creacion o modificacion.  pero tengo que estar viendo carpeta por carpeta y aveces son varios. Con una macro intente  listar los archivos de cualquier carpeta y subcarpeta, esto activandolo segun la celdaactiva. El problema es que tiene algunos errores. 1. si la carpeta cuenta con subcarpetas me los manda a muchas filas abajo. Mi idea es hoja(Así debe quedar) Que con una macro pueda seleccionar la carpeta desde el buscador y me de la lista de archivos a partir de la fila 6. siendo columna A= fecha de modificación, columna B =Fecha de creación y columna C=Nombre del archivo con hiperlink. Con otro o con la misma macro poder seleccionar otra carpeta y sus subcarpetas, según sea el caso. y me liste a partir de la columna F de la fila 6 Siendo La columna F=Nombre del archivo, columna H=fecha de creación, columna I=ultima modificación   Para así poder acceder y comparar mis archivos, directamente desde excel.   Muchas gracias Mariano       Listar archivos de 2 carpetas para comparar.xlsm
    • Hola buenas, Os presento mis dudas. Tengo un libro  (llamémosle LibroDestino) con dos módulos, uno de definición de variables "ModDef" y otro de inicializacion de esas mismas variables "ModCfg". Necesito que al copiarme una hoja de otro libro(llamémosle LibroOrigen), mediante un procedimiento, sobrescribir el modulo de inicialización de variables del LibroDestino con el  contenido del módulo que hay en el LibroOrigen. Destacar que los dos módulos de cada libro tienen el mismo nombre "ModCfg". Y tienen una única variable llamada "Mensaje". En el LibroDestino tiene el valor "Hola" y en el LibroOrigen el valor "Adiós" Este procedimiento lo realiza perfectamente,  es decir se sobrescribe, pero si en el mismo procedimiento quiero utilizar el nuevo valor de esa variable, me conserva el valor de la variable anterior. Para hacer las comprobaciones he ejecutado un MsgBox al empezar y al acabar el procedimiento, pero en los dos casos me devuelve el valor original del LibroDestino el valor "Hola", cuando mi idea es que al sobrescribir el modulo con el nuevo valor de la variable, el último MsgBox me devuelva el valor "Adios". Mi objetivo es poder tener la inicialización de esas variables en un libro que no sea el de trabajo (LibroDestino), ya que según la hoja que importe puedo requerir que las variables tengan un valor u otro. ¿Por que no me coge en el procedimiento el nuevo valor de la variable? ¿Cómo podría conseguirlo? He tenido que activar en VBA  la referencia Microsoft visual basic for applications extensibility 5.3 desde  Herramientas -> Referencias. Creo que es la única manera de poder trabajar con los módulos desde VBA, aunque si se pudiera de otra manera creo que sería mas óptimo. Mil gracias de antemano, un saludo!         Libro1_Prueba.xlsm Libro2_Prueba.xlsm
    • Agradecido Antoni! Tus sugerencias me ayudaron mucho! Como pudiese hacerte llegar el archivo?
    • Prueba este código. Sin el archivo no te puedo ajustar más. Private Sub btnCargaBancos_Click() 'El tipo de dato debe especificase para cada variable Dim TasaCompra As Double, TasaVenta As Double, InvBanesco As Double, InvVzla As Double Dim MontoBanesco As Double, MontoVzla As Double, TasaDiaBan As Double, TasaDiaVzla As Double Dim TasaActual As Double 'Hay que comprobar que los textbox tienen contenido numérico 'Los datos numéricos solo pueden contener números y el separador decimal, cualquier otro caracter dará error al convertir If Not IsNumeric(txtInverBanesco) Or _ Not IsNumeric(txtInverVzla) Or _ Not IsNumeric(txtTasaCompra) Or _ Not IsNumeric(txtTasaVenta) Then MsgBox "Los datos deben ser numéricos", vbCritical Exit Sub End If InvBanesco = CDbl(txtInverBanesco) InvVzla = CDbl(txtInverVzla) TasaCompra = CDbl(txtTasaCompra) TasaVenta = CDbl(txtTasaVenta) 'Los datos de los divisores no pueden ser 0 (Indeterminación matemática) If TasaCompra = 0 Or _ InvBanesco = 0 Or _ InvVzla = 0 Then MsgBox "Los datos no admiten valor cero", vbCritical Exit Sub End If MontoBanesco = (InvBanesco / TasaCompra) * (1 - 0.18 / 100) * (TasaVenta * (1 - 0.18 / 100)) MontoVzla = (InvVzla / TasaCompra) * (1 - 0.18 / 100) * (TasaVenta * (1 - 0.18 / 100)) TasaDiaBan = (MontoBanesco / InvBanesco) * (1 - 0.055) TasaDiaVzla = (MontoVzla / InvVzla) * (1 - 0.055) If TasaDiaBan < TasaDiaVzla Then TasaActual = TasaDiaBan Else TasaActual = TasaDiaVzla End If 'En VBA, los datos numéricos no admiten ser formateados, formatear directamente en las celdas, 'MontoBanesco = FormatNumber(MontoBanesco, 2, True, vbFalse) 'MontoVzla = FormatNumber(MontoVzla, 2, True, vbFalse) 'TasaActual = FormatNumber(TasaActual, 5, True, False) txtBcoBanesco = MontoBanesco txtBcoVenezuela = MontoVzla txtTasaDiaria = TasaActual End Sub  
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • 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.