Option Explicit Sub DuplicarLibroCerrar() Dim wb As Workbook, sRuta As String sRuta = ThisWorkbook.Path & "\" & _ Format(Now, "yyyymmdd") & Chr(32) & ThisWorkbook.Name ThisWorkbook.SaveCopyAs Filename:=sRuta Dim resp As String resp = MsgBox("¿Quieres abrir el duplicado y cerrar éste?", vbYesNo) If resp = vbYes Then Set wb = Workbooks.Open(sRuta) ThisWorkbook.Close Else End If End SubGuardará una copia del libro activo en la misma ruta del libro, con el nombre precedido de la fecha y un espacio. P. ej.: Libro1.xlsm se guardará como 20140519 Libro1.xlsm.Si también queremos la hora reemplazamos por "yyyymmdd" por "yyyymmdd-hh.mm.ss" u otro formato deseado.
Aparecerá esta ventana emergente al finalizar:
En el caso de que el fichero ya cuente con una fecha y espacio delante del nombre del fichero, empleamos este macro:
Option Explicit Sub DuplicarLibroCerrar2() Dim sNomb As String, sNombSinFecha As String ' Nombre con y sin fecha sNomb = ThisWorkbook.Name ' Nombre entero sNombSinFecha = Right(sNomb, Len(sNomb) - InStr(1, sNomb, " ")) Dim wb As Workbook, sRuta As String sRuta = ThisWorkbook.Path & "\" & _ Format(Now, "yyyymmdd") & Chr(32) & sNombSinFecha ThisWorkbook.SaveCopyAs Filename:=sRuta Dim resp As String resp = MsgBox("¿Quieres abrir el duplicado y cerrar éste?", vbYesNo) If resp = vbYes Then Set wb = Workbooks.Open(sRuta) ThisWorkbook.Close Else End If End SubExtrae el nombre del fichero sin fecha y le añade la fecha actualizada.
Entradas relacionadas:
Duplicar libro de Excel mediante VBA
No hay comentarios:
Publicar un comentario