Attribute VB_Name = "GuardarLibro" ' Gerencie.com - Macros para guardar el libro y obtener su ruta. ' Importar en el editor de VBA (Alt + F11): Archivo > Importar archivo. ' 1. Guardar el libro que contiene la macro Sub GuardarLibro() ThisWorkbook.Save End Sub ' 2. Mostrar la ruta, el nombre y la ruta completa del libro Sub MostrarRuta() MsgBox "Carpeta: " & ThisWorkbook.Path & vbCrLf & _ "Nombre: " & ThisWorkbook.Name & vbCrLf & _ "Ruta completa: " & ThisWorkbook.FullName End Sub ' 3. Guardar como libro habilitado para macros en otra carpeta ' La carpeta se escribe en A1 y el nombre del archivo (sin extensión) en B1 de la hoja activa. Sub GuardarComoEnCarpeta() Dim carpeta As String, nombre As String carpeta = Trim(ActiveSheet.Range("A1").Value) nombre = Trim(ActiveSheet.Range("B1").Value) If carpeta = "" Or nombre = "" Then MsgBox "Escriba la carpeta en A1 y el nombre del archivo en B1." Exit Sub End If If Right(carpeta, 1) <> Application.PathSeparator Then carpeta = carpeta & Application.PathSeparator If Dir(carpeta, vbDirectory) = "" Then MkDir carpeta ThisWorkbook.SaveAs Filename:=carpeta & nombre & ".xlsm", FileFormat:=52 MsgBox "Guardado en " & ThisWorkbook.FullName End Sub ' 4. Guardar una copia con la fecha y la hora en el nombre, sin dejar de trabajar en el original Sub GuardarCopiaConFecha() Dim nombreBase As String, copia As String nombreBase = Left(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1) copia = ThisWorkbook.Path & Application.PathSeparator & nombreBase & " " & _ Format(Now, "yyyy-mm-dd hh-mm") & Mid(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".")) ThisWorkbook.SaveCopyAs copia MsgBox "Copia guardada: " & copia End Sub ' 5. Guardar automáticamente antes de cerrar (pegar en el módulo ThisWorkbook, no en un módulo estándar) ' Private Sub Workbook_BeforeClose(Cancel As Boolean) ' ThisWorkbook.Save ' End Sub