Auszug:
Sub()
......
Pfad = "Q:\Personal Leitung\Abrechnung\Gehaltsläufe\2017\BPx\"
Set Dialog = Application.FileDialog(msoFileDialogSaveAs)
With Dialog
.InitialFileName = Pfad
.Show
End With
If Dialog False Then Dialog.Execute
...End Sub
Set Dialog = ......
With Dialog
.Filters.Clear
Gruß WernerFunction FileSelection(ByVal Endung As String) As Variant
FileSelection = Application.GetOpenFilename(FileFilter:="Excel-Dateien (" + Endung + ")," + _
Endung, MultiSelect:=True)
End Function
Sub CSVimport()
'Makroname zum Impotieren von CSV-Dateien
Dim pfad As Variant
Dim DateinameKurz As Variant
Dim WS As Worksheet
pfad = FileSelection("*.csv")' Hier wird die Funktion aufgerufen _
i>
On Error GoTo weiter
If pfad = False Then Exit Sub
weiter:
u = UBound(pfad)
For i = 1 To UBound(pfad)
Dim TestArray() As String
TestArray = Split(pfad(i), "\")
Dateiname = TestArray(UBound(TestArray))
DateinameKurz = Left(Dateiname, Len(Dateiname) - 4)
ActiveWorkbook.Worksheets.Add
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & pfad(i), Destination:=Range(" _
A1"))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 65001
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
ActiveSheet.Name = DateinameKurz
Next i
End Sub
Public Sub SichernMitMakros()
Dim fileSaveName As Variant
fileSaveName = Application.GetSaveAsFilename( _
InitialFileName:="Q:\Personal Leitung\Abrechnung\" & _
"Gehaltsläufe\2017\BPx\Test.xlsm", _
fileFilter:="Excel File mit Makro (*.xlsm), *.xlsm")
If VarType(fileSaveName) = vbString Then
ThisWorkbook.SaveAs _
fileName:=fileSaveName, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled
Else
MsgBox "Sicherung abgebrochen!", vbOKOnly + vbExclamation
End If
End Sub
Gruess HansueliUm die msoFileDialogSaveAs
-Dialogbox in Excel VBA zu verwenden, gehe folgendermaßen vor:
ALT + F11
, um den VBA-Editor zu öffnen.Einfügen
> Modul
klickst.Sub DateiSpeichern()
Dim Dialog As FileDialog
Dim Pfad As String
Pfad = "Q:\Personal Leitung\Abrechnung\Gehaltsläufe\2017\BPx\"
Set Dialog = Application.FileDialog(msoFileDialogSaveAs)
With Dialog
.InitialFileName = Pfad
.Filters.Clear
.Filters.Add "Excel Dateien", "*.xlsm", 1
If .Show = -1 Then
ActiveWorkbook.SaveAs .SelectedItems(1)
End If
End With
End Sub
Laufzeitfehler 438: Dieser Fehler tritt auf, wenn die .Filters
-Eigenschaft falsch verwendet wird. Stelle sicher, dass du .Filters.Add
korrekt schreibst.
Dialog wird nicht angezeigt: Überprüfe, ob die Set Dialog = Application.FileDialog(msoFileDialogSaveAs)
Zeile korrekt ist und du das Makro ausführst.
Keine Filter angezeigt: Der msoFileDialogSaveAs
unterstützt keine Filter. Verwende stattdessen Application.GetSaveAsFilename
, wie weiter unten beschrieben.
Wenn du eine Filterfunktion benötigst, solltest du Application.GetSaveAsFilename
verwenden, da msoFileDialogSaveAs
keine Filter unterstützt. Hier ein Beispiel:
Sub DateiSpeichernAlternativ()
Dim fileSaveName As Variant
fileSaveName = Application.GetSaveAsFilename( _
InitialFileName:="Q:\Personal Leitung\Abrechnung\Gehaltsläufe\2017\BPx\Test.xlsm", _
FileFilter:="Excel-Workbooks (*.xlsm), *.xlsm")
If fileSaveName <> False Then
ThisWorkbook.SaveAs fileName:=fileSaveName, FileFormat:=xlOpenXMLWorkbookMacroEnabled
Else
MsgBox "Speichern abgebrochen!", vbOKOnly + vbExclamation
End If
End Sub
Sub SpeichernMitFilter()
Dim Dialog As FileDialog
Set Dialog = Application.FileDialog(msoFileDialogSaveAs)
With Dialog
.Filters.Clear
.Filters.Add "Excel-Dateien", "*.xlsm"
.Show
End With
End Sub
Sub EinfachSpeichern()
Dim savePath As Variant
savePath = Application.GetSaveAsFilename()
If savePath <> False Then
ActiveWorkbook.SaveAs Filename:=savePath
End If
End Sub
Variant
für Pfad-Deklarationen: Dadurch können verschiedene Datentypen gespeichert werden, was die Flexibilität erhöht..Filters.Clear
: Dies stellt sicher, dass alte Filter gelöscht werden, bevor neue hinzugefügt werden.1. Unterstützt msoFileDialogSaveAs
Filter?
Nein, der msoFileDialogSaveAs
unterstützt keine Filter. Verwende Application.GetSaveAsFilename
für Filteroptionen.
2. Wie kann ich einen Standardpfad für den Dialog festlegen?
Verwende die .InitialFileName
-Eigenschaft, um einen Standardpfad vorzugeben.
3. Was ist der Unterschied zwischen msoFileDialogSaveAs
und GetSaveAsFilename
?
msoFileDialogSaveAs
öffnet eine Dialogbox, während GetSaveAsFilename
eine Dateipfad-Variable zurückgibt, ohne die Datei direkt zu speichern.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen