Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: msoFileDialogSaveAs

msoFileDialogSaveAs
Ximena
Hallo ihr Lieben
so, ich hätte gerne, dass meine Makro das Dokument (ja, ich bin mal wieder im Word, aber ich denke das funzt gleich) abspeichert!
    strDatName = "SCC SLR " & myMonth & " " & myYear & " " & myDivision & ".docx"

So soll es heissen! Und nun soll ein Dilaog Fenster aufgehen, in dem der User den Ordner (Directory) aussuchen kann:
Set docQuelle = ActiveDocument
With Application.FileDialog(msoFileDialogSaveAs)
.InitialFileName = strDatName
.Show
End With

Jetzt soll die Makro das Dokument speichern:
ChangeFileOpenDirectory 'HIER IST DIE FRAGE!!
docQuelle.SaveAs2 FileName:=strDatName, FileFormat:=wdFormatDocumentDefault
Set docQuelle = Nothing
MsgBox "Your document has been saved!"
Gut, dort wo HIER IST DIE FRAGE steht, dort habe ich ein Problem :) Und zwar: momentan speichert er mir das File nicht dorthin, wo ich im Dialog Fenster hingeklickt habe, ist ja auch verständlich, denn diese Info speichert er ja nicht. Deshalb habe ich gegoogelt und "ChangeFiledOpenDirectory" gefunden, damit kann ich bestimmen, wohin das Dokument gespeichert wird. Doch ich möchte dem Befehl eine Variable zuordnen. Diese Variable soll beim msoFiledialogsaveas bestimmt werden... geht das? Versteht ihr mich?
Ganz liebe Grüsse
Ximena
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: msoFileDialogSaveAs
12.06.2012 11:22:50
Rudi
Hallo,
würde ich per FileDialog machen.
Sub xxxx()
Dim strPfad As String
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Ordner wählen"
If .Show = -1 Then strPfad = .SelectedItems(1)
End With
MsgBox strPfad
End Sub

Gruß
Rudi
Anzeige
Supi! Danke :D - owT
12.06.2012 11:36:09
Ximena
Hallo Rudi
Supi! Danke :D
Lg Ximena
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

msoFileDialogSaveAs in Excel VBA nutzen


Schritt-für-Schritt-Anleitung

Um das msoFileDialogSaveAs-Feature in Excel VBA zu verwenden, folge diesen Schritten:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Erstelle ein neues Modul: Rechtsklicke auf "VBAProject" und wähle "Einfügen" > "Modul".

  3. Füge den folgenden Code ein:

    Sub SpeichernMitDialog()
       Dim strDatName As String
       Dim strPfad As String
    
       ' Definiere den Dateinamen
       strDatName = "Beispiel Dokument.xlsx"
    
       ' Öffne den Save As Dialog
       With Application.FileDialog(msoFileDialogSaveAs)
           .InitialFileName = strDatName
           If .Show = -1 Then
               strPfad = .SelectedItems(1)
               ' Speichern der Datei
               ActiveWorkbook.SaveAs FileName:=strPfad, FileFormat:=xlOpenXMLWorkbook
               MsgBox "Dein Dokument wurde gespeichert!"
           Else
               MsgBox "Speichern abgebrochen."
           End If
       End With
    End Sub
  4. Führe das Makro aus: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle SpeichernMitDialog und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  1. Fehler: Der Dialog wird nicht angezeigt

    • Lösung: Stelle sicher, dass das Makro korrekt implementiert ist und keine Syntaxfehler aufweist.
  2. Fehler: Die Datei wird nicht gespeichert

    • Lösung: Überprüfe, ob der FileName-Parameter korrekt gesetzt ist. Stelle sicher, dass du die richtige Dateiendung verwendest.
  3. Fehler: Dialog zeigt keinen vorgeschlagenen Dateinamen

    • Lösung: Achte darauf, dass .InitialFileName korrekt gesetzt ist, bevor du den Dialog öffnest.

Alternative Methoden

Wenn du eine andere Möglichkeit suchst, um Dateien zu speichern, kannst du auch den msoFileDialogFolderPicker verwenden, um zunächst den Zielordner auszuwählen und dann die Datei zu speichern. Hier ein Beispiel:

Sub OrdnerWählenUndSpeichern()
    Dim strPfad As String

    With Application.FileDialog(msoFileDialogFolderPicker)
        .Title = "Ordner wählen"
        If .Show = -1 Then
            strPfad = .SelectedItems(1) & "\"
            ' Speichere die Datei hier
            ActiveWorkbook.SaveAs FileName:=strPfad & "NeuesDokument.xlsx", FileFormat:=xlOpenXMLWorkbook
        End If
    End With
End Sub

Praktische Beispiele

Hier sind einige praktische Anwendungsbeispiele für das msoFileDialogSaveAs in Excel VBA:

  1. Speichern eines Berichts: Nutze den Dialog, um Berichte in verschiedenen Formaten zu speichern, z.B. als PDF oder XLSX.
  2. Dynamische Dateinamen: Erstelle Dateinamen basierend auf dem aktuellen Datum oder anderen Variablen, um eine bessere Organisation zu gewährleisten.
Sub BerichtSpeichern()
    Dim strDatName As String
    strDatName = "Bericht_" & Format(Date, "yyyy-mm-dd") & ".xlsx"
    ' Code für den Save As Dialog hier einfügen...
End Sub

Tipps für Profis

  • Verwende On Error Resume Next: Dies kann helfen, Fehler zu behandeln, wenn der Benutzer den Dialog abbricht.
  • Dateiformate anpassen: Stelle sicher, dass du das richtige FileFormat für die Datei angibst, die du speicherst.
  • Benutzerführung verbessern: Füge informative MsgBoxen hinzu, um den Benutzer über den Status des Speichervorgangs zu informieren.

FAQ: Häufige Fragen

1. Wie kann ich den Dialog anpassen? Du kannst Titel und Filter für den Dialog anpassen, um die Benutzererfahrung zu verbessern.

2. Ist dieses Verfahren in allen Excel-Versionen gleich? Ja, das msoFileDialogSaveAs-Feature ist in den meisten modernen Excel-Versionen (ab Excel 2007) verfügbar.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige