2014-09-14

Duplicar libro de Excel mediante VBA

Para duplicar el fichero de Excel activo usamos la siguiente macro:

Option Explicit
Sub DuplicaLibro()
    ThisWorkbook.SaveCopyAs Filename:=ThisWorkbook.Path & "\" & _
    Format(Now, "yyyymmdd") & Chr(32) & ThisWorkbook.Name
    MsgBox "Fichero duplicado", vbInformation
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-hhmmss" 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 DuplicaLibro2()
    Dim sNomb As String, sNombSinFecha As String ' Nombres con y sin fecha
    sNomb = ThisWorkbook.Name 
    sNombSinFecha = Right(sNomb, Len(sNomb) - InStr(1, sNomb, " ")) 
    ThisWorkbook.SaveCopyAs Filename:=ThisWorkbook.Path & "\" & _
    Format(Now, "yyyymmdd-hh.mm.ss") & Chr(32) & sNombSinFecha
    MsgBox "Fichero duplicado", vbInformation
End Sub
Extrae el nombre del fichero sin fecha y le añade la fecha actualizada.

No hay comentarios:

Publicar un comentario

Nube de datos