Guardar archivo creando carpeta y archivo con valor de celda excel

Deseo que al dar click a un botón se guarde automáticamente un archivo de excel (2007) creando una carpeta en el escritorio con el nombre del valor de una celda combinada (A14) y renombrando el archivo con el valor de la misma celda a14 guardándolo en la carpeta recién creada

Escribe tu código aquí
Respuesta
1

Sigue las Instrucciones para un botón y ejecutar la macro
1. Abre tu libro de Excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
5. Ahora para crear un botón, puedes hacer lo siguiente:
6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona Asignar macro / Selecciona: crearcarpeta
9. Aceptar.
10. Para ejecutarla dale click a la imagen.

Sub
crearcarpeta()
'Por.DAM
    Application.DisplayAlerts = False
    Set objWSHShell = CreateObject("WScript.Shell")
    escritorio = objWSHShell.SpecialFolders("Desktop")
    If Dir(escritorio & "\" & Range("A14"), vbDirectory) = "" Then
        MkDir escritorio & "\" & Range("A14")
        ActiveWorkbook.SaveAs escritorio & "\" & Range("A14") & "\" & Range("A14")
    End If
End Sub

Saludos. Dante Amor
No olvides finalizar la pregunta.

Buenas tardes Dante, gracias por tu respuesta. Te comento que la rutina que me indicaste si crea la carpeta adecuadamente, y crea un archivo con el nombre dentro de la carpeta, pero el archivo que crea no tiene extensión. También aprovecho para comentarte que los archivos que quiero guardar son *.xlsm o *.xlsx

Ya lo revisé y te crea el archivo con extensión xlsx

Revisa nuevamente o dime si le cambiaste algo a la macro

Sub crearcarpeta()
'Por.DAM
    Application.DisplayAlerts = False
    Set objWSHShell = CreateObject("WScript.Shell")
    escritorio = objWSHShell.SpecialFolders("Desktop")
    If Dir(escritorio & "\" & Range("A14"), vbDirectory) = "" Then
        MkDir escritorio & "\" & Range("A14")
        ActiveWorkbook.SaveAs escritorio & "\" & Range("A14") & "\" & Range("A14")
    End If
End Sub

Si quieres que se guarde como xlsm cambia esta línea

ActiveWorkbook.SaveAs escritorio & "\" & Range("A14") & "\" & Range("A14")

Por esta

ActiveWorkbook.SaveAs Filename:=escritorio & "\" & Range("A14") & "\" & Range("A14"), _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

1 respuesta más de otro experto

Respuesta

Que tal buena tarde tengo un problema

Quiero crear un botón donde al dar clic me permita seleccionar un archivo de escritorio (.xls) y pueda guardarlo sin abrirlo en una carpeta determinada, con el nombre que yo quiera.

Tengo este código pero solo me permite abrirlo y no guardarlo sin abrirlo

Private Sub CommandButton23_Click()
ruta = ThisWorkbook.Path
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Seleccione archivo de excel"
.Filters.Clear
.Filters.Add "All Files", "*.*"
.Filters.Add "xls.*", "*.xls*"
.FilterIndex = 2
.AllowMultiSelect = False
.InitialFileName = ruta
'.Show
If .Show Then
arch = .SelectedItems.Item(1) & SaveAs
End If
End With

End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas