Guardar como en excel, que el usuario elija la carpeta donde guardar

Estimados,

Tengo un código que se ejecuta, guardando con un formato de nombre establecido y me da a elegir una carpeta, lo malo que no me deja guardar en alguna carpeta elegida de mis documento ( me genera un error #400), solo funciona a la perfección cuando guardo el archivo en el escritorio o desktop del pc, ¿qué debo cambiar en este código?

' Opción de guardar como
Sub GuardarComo()

Dim Ruta, Nombre As String

Nombre = Range("J13") & " - " & " " & Range("AO9") & ".xlsm"

Msg = ("El nombre del archivo será:") & vbCr & vbCr & Nombre & vbCr & vbCr & "¿ Desea continuar ?"

Ans = MsgBox(Msg, vbYesNo, "Guardar")
If Ans = vbNo Then
Exit Sub
Else
With Application.FileDialog(msoFileDialogFolderPicker)
    .Show
    Ruta = .InitialFileName

 

ActiveWorkbook.SaveAs Filename:=Ruta & Nombre

End With

End If

End Sub

Por su tiempo y ayuda gracias!

manky

Respuesta
2

Prueba con lo siguiente:

Sub GuardarComo()
'Act.Por.Dante Amor
    Dim Ruta, Nombre As String
    Nombre = Range("J13") & " - " & " " & Range("AO9") & ".xlsm"
    Msg = ("El nombre del archivo será:") & vbCr & vbCr & Nombre & vbCr & vbCr & "¿ Desea continuar ?"
    Ans = MsgBox(Msg, vbYesNo, "Guardar")
    If Ans = vbYes Then
        Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
        With fldr
            .Title = "Selecciona una carpeta"
            .AllowMultiSelect = False
            .InitialFileName = Ruta
            If .Show <> -1 Then Exit Sub
            Ruta = .SelectedItems(1)
        End With
        ActiveWorkbook.SaveAs Filename:=Ruta & "\" & Nombre, _
            FileFormat:=xlOpenXMLWorkbookMacroEnabled
    End If
End Sub

Nota: si en alguna de las 2 celdas tienes una fecha, tendrás que cambiar el formato a "dd-mm-yyyy", ya que no se permite el caracter "/".

Saludos. Dante Amor

Si es lo que necesitas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas