No siempre es necesario inventar todo por tu cuenta cuando puedes usar algo que ya existe.

Tiene acceso a la mayoría de los cuadros de diálogo integrados en Excel y las demás aplicaciones de Office.

Si desea que el usuario decida dónde guardar un libro de trabajo, puede mostrar el cuadro de diálogo integrado Guardar así:

Application.Dialogs(xlDialogSaveAs).Show

Para obtener una lista de todos los cuadros de diálogo accesibles en Excel, use el navegador de objetos.

Para mostrarlo, presione F2 mientras tiene un módulo activado. Seleccione Excel como biblioteca y busque las constantes que comienzan con xlDialog …​.

Si solo desea recuperar un nombre de archivo del usuario que desea usar más adelante para abrir o guardar un libro, puede usar los métodos GetOpenFilename o GetSaveAsFilename. Ambos métodos muestran sus respectivos cuadros de diálogo, pero no abren ni guardan el archivo cuando el usuario confirma el cuadro de diálogo.

En cambio, los métodos devuelven el nombre de archivo completo al archivo que el usuario desea abrir o guardar.

FullFileName = Application.GetOpenFilename("Excel files (.xl),.xl", _

1, "Custom Dialog Title", , False)

FullFileName = Application.GetSaveAsFilename("DefaultFilename.xls", _

"Excel files (.xl),.xl", 1, "Custom Dialog Title")

El resultado se puede utilizar de la forma que desee. Más tarde puede abrir un libro de trabajo seleccionado como este:

Workbooks.Open FullFileName

O puede guardar un libro de trabajo como este:

ActiveWorkbook.SaveAs FullFileName

Cuando el usuario ha confirmado el cuadro de diálogo FileOpen o FileSaveAs, es posible que también haya cambiado la carpeta activa o actual, por lo que a menudo uso estos dos métodos como un enfoque simple para permitir que el usuario seleccione una carpeta. Puede encontrar otra forma de permitir que el usuario seleccione una carpeta en la sección Archivos y carpetas.