Macro guardar como

Jaime como estas. Necesito tu ayuda en esta pequeña macro que no me sale.

La idea es asociarla a un botón que abra la ventana de guardar como, pero que en el tipo de archivo unicamente me deje la extensión de libro habilitado para macros.

Resumo..., clic sobre el botón, abre la ventana de guardar como (para que le pongan el destino del libro) pero que se guarde como libro habilitado para macros (... XLM) UNICAMENTE...

Respuesta
1

Mi problema es que busco una macros para excel que "guarde como", iniciando en una carpeta llamada "comercialización" y to le pueda poner el nombre del cliente, con extensión xlsx, mi código es el siguiente.

Sub Example5()
Dim varResult As Variant
'displays the save file dialog
varResult = Application.GetSaveasFilename(FileFilter:="Excel Files (*.xlsx), *.xlsx," _
& "Macro Enabled Workbook (*.xlsm), *xlsm", Title:="Some Random Title", InitialFileName:="D:\Empagrafic\System\Comercializacion")
'checks to make sure the user hasn't canceled the dialog
If varResult <> False Then
Cells(2, 1) = varResult
End If
End Sub

El problema es que no me guarda, es decir no genera el archivo.

1 respuesta más de otro experto

Respuesta
2

Usa un código como este

Archivodefault = "default" ' aquí puedes especificar el nombre que le asigna si es que no elige nada

filtro = "Excels XLSM (*.xlsm), *.xlsm"

titulo = "Por favor escriba el nombre del archivo a crear"

a = Application.GetSaveAsFilename(InitialFileName:=archivodefault, fileFilter:=filtro, Title:=titulo)

ActiveWorkbook.SaveAs Filename:=archivo, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

Jaime buenos días, como estas..

Aca te dejo la macro adaptada, me esta tirando un error en el Filename:=archivo,

la verdad que no pude arreglarlo yo mismo por eso te pido ayuda.

Por otro lado como hago para que no me cierre el archivo original, ya que de esta forma me lo cierra y me genera el nuevo archivo.. Osea que yo genere el nuevo archivo pero que no me cierre el archivo que estoy trababajando.

Saludos y mil gracias es lo q necesitaba, después voy a cambiarle las extensiones para que me haga lo mismo pero en formato PDF..

Sub BOTON_GUARDAR_COMO()
Dim Respuesta As Integer
Respuesta = MsgBox("Procede a guardar un copia total del libro, POR FAVOR GUARDAR DONDE CORRESPONDA", vbQuestion + vbYesNo, "ADVERTENCIA")
If Respuesta = vbNo Then
MsgBox "Coloque el cliente y vuelva a intentarlo", vbCritical
Exit Sub
End If
If Respuesta = vbYes Then
archivodefault = "default" ' aquí puedes especificar el nombre que le asigna si es que no elige nada
filtro = "Excels XLSM (*.xlsm), *.xlsm"
titulo = "Por favor escriba el nombre del archivo a crear"
a = Application.GetSaveAsFilename(InitialFileName:=archivodefault, fileFilter:=filtro, Title:=titulo)
ActiveWorkbook.SaveAs Filename:=archivo, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=True
End If
End Sub

Reemplaza archivo por simplemente a

Perfecto jaime todo joya, pero sucede algo.

Cuando abre la ventana de guardar donde coloco el nombre el archivo, y le doy cancelar por algún motivo. Me tira el error de depurar y genera un archivo con titulo false.

Se podrá corregir ese pequeño error o es muy complicado.

Saludos y gracias.

Sub BOTON_GUARDAR_COMO()Dim Respuesta As IntegerRespuesta = MsgBox("Procede a guardar un copia total del libro, POR FAVOR GUARDAR DONDE CORRESPONDA", vbQuestion + vbYesNo, "ADVERTENCIA")If Respuesta = vbNo ThenMsgBox "Coloque el cliente y vuelva a intentarlo", vbCriticalExit SubEnd IfIf Respuesta = vbYes Thenarchivodefault = "default" ' aquí puedes especificar el nombre que le asigna si es que no elige nadafiltro = "Excels XLSM (*.xlsm), *.xlsm"titulo = "Por favor escriba el nombre del archivo a crear"a = Application.GetSaveAsFilename(InitialFileName:=archivodefault, fileFilter:=filtro, Title:=titulo)

if a<>false thenActiveWorkbook.SaveAs Filename:=a FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=True

else

msgbox "No se grabó el archivo"End IfEnd Sub

Genial, jaime.

Como vinculo esta formula que si pongo cancelar me habrá la hoja donde estaba trabajando.

If a <> False Then

Sheets("HojaVentas").Select
Range("d3").Select

Perdón por no especificarte antes se me paso. mil disculpas.

No entiendo tu ultima pregunta... se un poco más especifico

Jaime.. buenas tardes..

la idea es que cuando aprieto cancelar me tiene que llevar a la hojaventas.

saludos..

Sub BOTON_GUARDAR_COMO()Dim Respuesta As IntegerRespuesta = MsgBox("Procede a guardar un copia total del libro, POR FAVOR GUARDAR DONDE CORRESPONDA", vbQuestion + vbYesNo, "ADVERTENCIA")If Respuesta = vbNo ThenMsgBox "Coloque el cliente y vuelva a intentarlo", vbCriticalExit SubEnd IfIf Respuesta = vbYes Thenarchivodefault = "default" ' aquí puedes especificar el nombre que le asigna si es que no elige nadafiltro = "Excels XLSM (*.xlsm), *.xlsm"titulo = "Por favor escriba el nombre del archivo a crear"a = Application.GetSaveAsFilename(InitialFileName:=archivodefault, fileFilter:=filtro, Title:=titulo)

If a <> False Then ActiveWorkbook.SaveAs Filename:=a, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=True

Else

Sheets("HojaVentas").Select Range("d3").SelectEnd If

End Sub

La pregunta no admite más respuestas

Más respuestas relacionadas