Anwendung von Application.Dialogs(xlDialogSaveAs) in Excel VBA
Schritt-für-Schritt-Anleitung
-
Makro erstellen:
Öffne den VBA-Editor (Alt + F11) und erstelle ein neues Modul.
-
Code einfügen:
Füge den folgenden Code in das Modul ein, um das Speichern mit Application.Dialogs(xlDialogSaveAs)
zu implementieren:
Sub Speichern_unter_Korrektur_Upload()
Application.DisplayAlerts = False
Sheets("Info").Select
ChDrive "M"
Dim pfad As String
pfad = ThisWorkbook.Path
Dim NeuerName As String
NeuerName = Range("XFD1").Value
Sheets("Korrektur upload").Select
Columns("A:K").Select
Selection.AutoFilter Field:=8, Criteria1:="0"
Selection.AutoFilter Field:=9, Criteria1:="0"
Columns("A:K").Select
Selection.Copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
' Save as Dialog
Application.Dialogs(xlDialogSaveAs).Show NeuerName, xlTextWindows
' Hier kannst du das Speichern logischer gestalten
Application.DisplayAlerts = True
Sheets("Korrektur upload").Select
Selection.AutoFilter
Sheets("Info").Select
End Sub
-
Dialog anpassen:
Um die Datei im richtigen Format zu speichern, kannst du den Parameter Local:=True
verwenden, wie im nächsten Abschnitt beschrieben.
Häufige Fehler und Lösungen
-
Kompilierungsfehler: Wenn du beim Verwenden von Application.GetSaveAsFilename
einen Fehler erhältst, überprüfe, ob du den Code korrekt kopiert hast. Oft werden Zeilenumbrüche eingefügt, die in VBA nicht gültig sind. Stelle sicher, dass der Code in einer einzigen Zeile bleibt:
Speichername = Application.GetSaveAsFilename(InitialFileName:=NeuerName, Filefilter:="Textfile, *.txt")
-
Zahlensystem: Wenn die Zahlen nicht im gewünschten Format gespeichert werden, stelle sicher, dass du den Parameter Local:=True
in deinem Speichervorgang einfügst.
Alternative Methoden
Anstelle von Application.Dialogs(xlDialogSaveAs)
kannst du auch die GetSaveAsFilename
Methode verwenden, um mehr Kontrolle über den Speichervorgang zu haben. Hier ein Beispiel:
Dim Speichername As String
Speichername = Application.GetSaveAsFilename(InitialFileName:="Name", Filefilter:="Textfile, *.txt")
If Speichername <> "False" Then
ActiveWorkbook.SaveAs Filename:=Speichername, FileFormat:=xlTextWindows, Local:=True
End If
Diese Methode gibt dir die Möglichkeit, den Dateinamen vor dem Speichern zu überprüfen.
Praktische Beispiele
Hier ein einfaches Beispiel, wie du die Dialoge in VBA verwenden kannst:
Sub Beispiel_SaveAs()
Dim NeuerName As String
NeuerName = "Beispiel.txt"
Application.Dialogs(xlDialogSaveAs).Show NeuerName
End Sub
Das Beispiel zeigt, wie du Application.Dialogs(xlDialogSaveAs).Show
verwenden kannst, um dem Benutzer die Möglichkeit zu geben, den Speicherort und den Dateinamen auszuwählen.
Tipps für Profis
- Nutze
Application.Dialogs(xlDialogOpen).Show
, um eine Datei zu öffnen. Dies kann hilfreich sein, wenn du mit mehreren Dateien arbeitest.
- Du kannst
application.dialogs(xldialogsaveas).show arguments
verwenden, um spezifische Argumente beim Speichern festzulegen, z.B. den Dateityp.
- Achte darauf, dass du
Local:=True
in deinem Speichervorgang verwendest, wenn du sicherstellen möchtest, dass die Zahlen im richtigen Format gespeichert werden.
FAQ: Häufige Fragen
1. Wie kann ich das Dialogfeld anpassen?
Du kannst die Argumente der Show
Methode anpassen, um bestimmte Parameter wie den Dateityp festzulegen.
2. Was ist der Unterschied zwischen SaveAs und GetSaveAsFilename?
SaveAs
speichert die Datei direkt, während GetSaveAsFilename
den Benutzer nur nach einem Dateinamen fragt, ohne die Datei sofort zu speichern.