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 Sub
Guardará 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 Sub
Extrae el nombre del fichero sin fecha y le añade la fecha actualizada.
Entradas relacionadas:
Duplicar libro de Excel mediante VBA
Nube de datos
No hay comentarios:
Publicar un comentario