Datei Speichern unter mit VBA - Dateipfad vorgeben

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Datei Speichern unter mit VBA - Dateipfad vorgeben
von: coronus
Geschrieben am: 30.05.2015 20:10:19

Hallo zusammen,
ich möchte aus einer Excel-Datei heraus mit einem Makro den "Speichern unter"-Dialog aufrufen. Der Dateipfad soll sein: D:\Dateien. Die Ausgangsdatei liegt auf C:\Users\user\Desktop.
Mein Problem: Der Dateipfad ändert sich nicht, es wird als Speicherpfad immer C:\Users\user\Desktop vorgegeben. Das aktuelle Verzeichnis CurDir ändert sich allerdings schon, wie mir die entsprechende MsgBox ausgibt (s.u.). Als Dateiname wird Test.xlsm übernommen.

Sub speichern_unter()
ChDrive "D:\"
ChDir "D:\Dateien\"
MsgBox CurDir
Application.Dialogs(xlDialogSaveAs).Show  "D:\Dateien\Test.xlsm"
End Sub

Bild

Betrifft: AW: Datei Speichern unter mit VBA - Dateipfad vorgeben
von: Nepumuk
Geschrieben am: 30.05.2015 20:31:13
Hallo,
so besser?

Sub speichern_unter()
    With Application.FileDialog(msoFileDialogSaveAs)
        .FilterIndex = 2
        .InitialFileName = "D:\Dateien\Test.xlsm"
        If .Show Then .Execute
    End With
End Sub

Gruß
Nepumuk

Bild

Betrifft: AW: Datei Speichern unter mit VBA - Dateipfad vorgeben
von: coronus
Geschrieben am: 30.05.2015 23:46:27
Funktioniert, danke! Neues Problem: Auf demselben Weg soll eine Excel-Datei als PDF gespeichert werden. Der unten stehende, angepasste Code gibt eine Fehlermeldung zurück.

Sub speichern_unter()
 With Application.FileDialog(msoFileDialogSaveAs)
  .FilterIndex = 25
  .InitialFileName = "D:\Dateien\Test.pdf"
  If .Show Then .Execute
 End With
End Sub


Bild

Betrifft: AW: Datei Speichern unter mit VBA - Dateipfad vorgeben
von: Nepumuk
Geschrieben am: 31.05.2015 08:03:32
Hallo,
so geht das:

Sub speichern_unter()
    With Application.FileDialog(msoFileDialogSaveAs)
        .FilterIndex = 25
        .InitialFileName = "D:\Dateien\Test.pdf"
        If .Show Then ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:=.SelectedItems(1), Quality:=xlQualityStandard, _
            IncludeDocProperties:=False, IgnorePrintAreas:=False, _
            OpenAfterPublish:=False
    End With
End Sub

Gruß
Nepumuk

Bild

Betrifft: AW: Datei Speichern unter mit VBA - Dateipfad vorgeben
von: coronus
Geschrieben am: 31.05.2015 11:17:55
Danke, das bringt mich schon weiter. Allerdings (da war ich wohl zu ungenau) habe ich drei Tabellenblätter, von denen nur das aktuelle (Tabelle1) gespeichert werden soll. Mit deinem Code werden alle Blätter als PDF konvertiert.
Das sollte doch auch kein Problem sein.
Und ich habe noch eine Frage:
Wozu dient die Anweisung Filename:=.SelectedItems(1)?

Bild

Betrifft: AW: Datei Speichern unter mit VBA - Dateipfad vorgeben
von: Nepumuk
Geschrieben am: 31.05.2015 11:39:49
Hallo,
in .SelectedItems(1) steht der ausgewählte Pfad inkl. Dateiname.
Ändere ThisWorkbook in Worksheets("Tabelle1")
Gruß
Nepumuk

Bild

Betrifft: AW: Datei Speichern unter mit VBA - Dateipfad vorgeben
von: coronus
Geschrieben am: 31.05.2015 12:04:26
Vielen Dank, Problem gelöst!

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Datei Speichern unter mit VBA - Dateipfad vorgeben"