Macro para "guardar como *.xlsm" desde *xltm

Hola,

Tengo una plantilla (*.xsltm) y tras rellenarla, quiero guardarla con la extensión *.xlsm, y cuyo nombre del archivo sea "- (celda G10) - (celda N10).xlsm". Me gustaría que la ruta del archivo fuera el contenido de otra celda; por ejemplo N12, pero no sé como expresar la ruta en la celda N12.

He estado "experimentando" y he conseguido lo que detallo a continuación. Funciona cuando trabajo con la plantilla abierta pero no cuando abro un nuevo archivo desde la plantilla.
Sub guardaarchivo()
Dim cliente, ruta, LIBRO, ahora, MiArchivo As String

With Application
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
End With


Set cliente = Range("G10")
Set ahora = Range("n10")
ruta = ThisWorkbook.Path & "\" ' AQUÍ ES DONDE ME GUSTARÍA QUE CAPTARA LA RUTA DESDE LA CELDA N12
MiArchivo = "- " & cliente & " - " & ahora & ".xlsm"
ActiveWorkbook.SaveAs Filename:=ruta & MiArchivo, FileFormat:=xlWorkbookNormal, CreateBackup:=False


End Sub

Imagino que el error debe estar en el FileFormat, pero no sé solucionarlo. Alguna sugerencia?
Gracias de antemano.

1 respuesta

Respuesta
1

En casos así es conveniente 'guardar como' con la grabadora encendida para obtener la sintaxis correcta, ya que estos detalles han cambiado con las nuevas versiones.

Este ejemplo corresponde a Excel 2010:

Sub guardaarchivo()
Dim cliente, ruta, LIBRO, ahora, MiArchivo As String
With Application
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
End With
Set cliente = Range("G10")
Set ahora = Range("n10")
Set ruta = Range("N12")
'ruta = ThisWorkbook.Path & "\" ' AQUÍ ES DONDE ME GUSTARÍA QUE CAPTARA LA RUTA DESDE LA CELDA N12
MiArchivo = "- " & cliente & " - " & ahora & ".xlsm"
ActiveWorkbook.SaveAs Filename:=ruta & "\" & MiArchivo, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub

También observa que como la ruta en celda N12 no la guardé con la barra final, la coloqué luego en la cadena.

Y por último: debes revisar que tanto 'cliente' como especialmente 'ahora' no tenga caracteres no aptos para nombres de libro.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas