Ich würde gerne per VBA-Code einen Fileopen-Dialog bzw. "Datei speichern" anstoßen. Geht das ?
Lukas
Ich würde gerne per VBA-Code einen Fileopen-Dialog bzw. "Datei speichern" anstoßen. Geht das ?
Lukas
Application.Dialogs(xlDialogOpen).Show
Application.Dialogs(xlDialogSaveAs).Show
Gruß Otto
hey...nur so kurzes Statement. nicht schlecht.
wie mach ich das aber nun am besten, wenn ich eigentlich nur den dialog zum auswählen brauchen wurde aber dann die Datei erst in meinem makro öffnen möchte?
ich sprech nämlich ein datenblatt der zu öffnenden datei in meinem makro an,...liefert mir das macro irgendwie den namen des geöffneten files oder so ?
mein makro soll nämlich aus dem per makro geöffneten file ein arbeitsblatt "arb1" herauskopieren und in meine derzeit aktuelle arbeitsmappe kopieren....
was meinst du dazu ? geht sowas ?
lukas
Mit folgender Zeile kannst Du den "Datei Öffnen"-Dialog (mit bereits voreingestelltem Ordner!) einblenden:
Application.Dialogs(xlDialogOpen).Show _
("F:\Pfad\Ordner\Unterordner\*.xls")
Bei "Datei Speichern" glaub ich nicht, dass das so einfach geht. Ich hab aber ein ähnliches Problem so gelöst:
nname = InputBox(Title:="Speichern unter ....",prompt:="... folgendem Dateinamen:", Default:="N:\Pfad\Ordner\UnterOrdner\" & ActiveWorkbook.Name)
If nname = "" Then
MsgBox prompt:="Da Sie nichts eingegeben haben, "
" wird das Programm beendet!", Buttons:=vbExclamation
Exit Sub
Else
ActiveWorkbook.SaveAs Filename:=nname, FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
End If
Ich hoffe, Du kannst damit was anfangen;
Viel Erfolg!
vbChr
wenn der Dateiname, der zu öffnenden Datei, bekannt ist, dann arbeite mit "Workbooks.open "c:\lukas\Datei1.xls"
Willst Du tatsächlich kopieren oder reicht Dir nicht eine Verknüpfung ?
Das Thema "kopieren" habe ich gerade gepostet. Gib mal oben in dem Feld "Suchen" den Begriff "Bernhard" ein. Ansonsten melde Dich nochmal.
Gruß Otto
Ich hab jetzt doch einen FileOpen-Dialog eingebaut...gibts ne Möglichkeit auf den Namen der ausgewählt wurde zu kommen (ohne Endung)?
Lukas
Fileopen-Dialog anzeigen: Um den Fileopen-Dialog
in Excel VBA zu öffnen, kannst du folgenden Befehl nutzen:
Application.Dialogs(xlDialogOpen).Show
Dies öffnet den Standard-Dialog zum Auswählen einer Datei.
Datei speichern Dialog: Wenn du stattdessen den „Datei speichern“-Dialog anzeigen möchtest, verwende diesen Befehl:
Application.Dialogs(xlDialogSaveAs).Show
Datei öffnen und Name erfassen: Um die ausgewählte Datei zu öffnen und den Namen zu erfassen, kannst du den folgenden Code verwenden:
Dim fileName As String
fileName = Application.GetOpenFilename("Excel Dateien (*.xls), *.xls", , "Wähle eine Datei")
If fileName <> "False" Then
Workbooks.Open fileName
End If
Kopieren eines Arbeitsblatts: Wenn du ein bestimmtes Arbeitsblatt (z.B. "arb1") aus der geöffneten Datei kopieren möchtest, kannst du das wie folgt tun:
Dim sourceWorkbook As Workbook
Set sourceWorkbook = Workbooks.Open(fileName)
sourceWorkbook.Sheets("arb1").Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
sourceWorkbook.Close False
Fehler 1: Der Dialog öffnet sich nicht.
Fehler 2: Die Datei kann nicht geöffnet werden.
Fehler 3: Der Arbeitsblattname existiert nicht.
Neben dem klassischen Fileopen-Dialog
kannst du auch die GetOpenFilename
-Methode nutzen, um mehr Kontrolle über die Dateiauswahl zu haben:
Dim filePath As Variant
filePath = Application.GetOpenFilename("Excel Dateien (*.xls), *.xls", , "Wähle eine Datei")
If filePath <> False Then
MsgBox "Gewählte Datei: " & filePath
End If
Diese Methode ermöglicht es dir, den ausgewählten Pfad direkt zu verwenden, ohne den Dialog zum Öffnen der Datei anzuzeigen.
Einfacher Fileopen-Dialog:
Sub OpenFileDialog()
Dim fileName As String
fileName = Application.GetOpenFilename("Excel Dateien (*.xls), *.xls", , "Wähle eine Datei")
If fileName <> "False" Then
Workbooks.Open fileName
End If
End Sub
Datei speichern mit benutzerdefiniertem Pfad:
Sub SaveFileDialog()
Dim nname As String
nname = InputBox("Speichern unter:", "Dateiname", "C:\DeinPfad\Dateiname.xlsx")
If nname <> "" Then
ActiveWorkbook.SaveAs Filename:=nname, FileFormat:=xlWorkbookDefault
End If
End Sub
vbFileOpen
und vbFileSave
für spezifische Dialogoptionen.With
-Anweisungen, um deinen Code übersichtlicher zu gestalten.Application.FileDialog(msoFileDialogOpen)
für mehr Flexibilität verwenden möchtest.1. Wie kann ich den Namen der ausgewählten Datei ohne Endung erhalten?
Du kannst den Namen der Datei mit Dir
und Split
erfassen:
Dim fileName As String
fileName = Application.GetOpenFilename("Excel Dateien (*.xls), *.xls")
If fileName <> "False" Then
MsgBox "Dateiname ohne Endung: " & Split(Dir(fileName), ".")(0)
End If
2. Ist es möglich, den Dialog zu einem bestimmten Ordner zu öffnen?
Ja, du kannst den Startordner wie folgt festlegen:
Application.Dialogs(xlDialogOpen).Show ("C:\DeinPfad\")
Mit diesen Anleitungen kannst du den Fileopen-Dialog
in Excel VBA effektiv nutzen und anpassen, um deine Anforderungen zu erfüllen.
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