El método Application.GetSaveAsFilename hace que se nos muestre el cuadro de dialogo de “guardar como”, completamente igual a la acción real; la diferencia es que este método nos retorna solamente el string de texto resultado de la interacción con el cuadro de diálogo, mas no guarda el archivo en realidad. Dicho string de texto no es más que la ruta en la cual habría sido guardado el archivo de usarse el verdadero guardar como.
El método cuenta con 4 argumentos, los cuales detallaremos a continuación:
· InitialFilename: El nombre de archivo que será sugerido (ya estará escrito de antemano) para el proceso de guardado
· FileFilter: El tipo de archivo y su correspondiente extensión para estar ya escritas en el cuadro de extensión de archivo, pueden ser múltiples
· FIlterIndex: Opcional. De ser omitida usa el primero de la lista ingresada en FileFilter, en caso contrario se ingresa un numero entero igual al índice del elemento a utilizar
· Title: El título del cuadro de diálogo, si es omitido se usa “Guardar como”
Este método puede ser utilizado por la gerencia de empresas con numeroso personal, en la cual la dirección de la empresa debe asegurarse que los recibos de proveedores son guardados en la carpeta con la fecha correspondiente.
Las empresas pueden contar con este método, el cual derivaría en una función condicional, es decir, si la ruta de guardado muestra la carpeta con la fecha correspondiente, procede a guardarlo de inmediato mediante un botón.
Por otro lado, si la ruta de guardado nos presenta una carpeta que no coincide con la fecha correspondiente, se procede a reiniciar el proceso mediante otro botón. Este método es de utilidad para aquellas empresas que quieren tener exhaustivo cuidado con el proceso de guardado en las carpetas, especialmente aquellas empresas que guardan numerosos archivos o cuentan con numeroso personal, en estas empresas si los archivos se encuentran guardados de forma desorganizada será muy dificultoso hacer un cuadre de cuentas.
Descargar: Ejemplo Application.GetSaveAsFilename
Por: Alvaro Mena
Ejemplos de Application.GetSaveAsFilename
Application.GetSaveAsFilename es muy útil y permite indicar el nombre del archivo a guardar. Puedes incluir un camino completo o tener la posibilidad de que el Excel lo interprete automáticamente; Si no indica el camino completo, Microsoft Excel guarda el archivo en la carpeta actual.
Veamos los siguientes ejemplos en los que podemos observar su uso
Ejemplo 1
Sub GetSaveasFilename()
Dim fileSaveName As String
fileSaveName = Application.GetSaveasFilename(fileFilter:="Excel Files (*.xls), *.xls")
If fileSaveName <> False Then
ActiveWorkbook.SaveAs (fileSaveName)
MsgBox "El libro está guardado en :" & fileSaveName
End If
End Sub
Ejemplo 2
Este ejemplo, por otro lado, crea un nuevo libro de trabajo, solicita un nombre de archivo para después guardar el libro de trabajo:
Sub GuardarComo ()
Set NewBook = Workbooks.Add
Do
fName = Application.GetSaveAsFilename
Loop Until fName <> False
NewBook.SaveAs Filename:=fName
End Sub
Ejemplo 3
Por último, con este ejemplo creamos la ruta completa, pero también se aprecia la posibilidad de anular la operación.
Sub AnularOperación()
Dim FileSaveName As Variant
FileSaveName = Application.GetSaveAsFilename( _
Filefilter:="Libro de Microsoft Office Excel (*.Xls), *.Xls," & "Ficheros de TEXTO (*.TXT), *.TXT", _
Title:="Querido Presidente:", _
InitialFileName:="MyLibro0302", _
FilterIndex:=1)
'Si Anulamos la operación con Cancelar...
If FileSaveName = False Then
MsgBox "El libro no será guardado ", vbInformation + vbOKOnly, "ATENCION:"
Exit Sub
End If
ActiveWorkbook.SaveAs Filename:=FileSaveName
End Sub
Ejemplos creados por Sergio Palomino
04/01/2021 a las 12:20 pm
He probado los ejemplos y, es curioso pero, a veces funcionan y a veces no.
Da "error 13, los tipos no coinciden"
¿Por qué puede ser?