Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Fileopen-Dialog

Fileopen-Dialog
13.08.2002 10:54:58
Lukas
Hi !

Ich würde gerne per VBA-Code einen Fileopen-Dialog bzw. "Datei speichern" anstoßen. Geht das ?

Lukas

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Fileopen-Dialog
13.08.2002 10:59:20
Otto Ecker
Hallo Lukas,

Application.Dialogs(xlDialogOpen).Show
Application.Dialogs(xlDialogSaveAs).Show

Gruß Otto

Re: Fileopen-Dialog
13.08.2002 11:03:24
Lukas
Danke 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

Anzeige
Re: Fileopen-Dialog
13.08.2002 11:09:26
Valente Christian
Hallo!

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

Anzeige
Re: Fileopen-Dialog
13.08.2002 11:14:08
Otto Ecker
Hallo Lukas,

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

Anzeige
Re: Fileopen-Dialog
13.08.2002 12:59:10
Lukas
Hallo !

Ich hab jetzt doch einen FileOpen-Dialog eingebaut...gibts ne Möglichkeit auf den Namen der ausgewählt wurde zu kommen (ohne Endung)?

Lukas

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Fileopen-Dialog in Excel VBA nutzen


Schritt-für-Schritt-Anleitung

  1. 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.

  2. Datei speichern Dialog: Wenn du stattdessen den „Datei speichern“-Dialog anzeigen möchtest, verwende diesen Befehl:

    Application.Dialogs(xlDialogSaveAs).Show
  3. 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
  4. 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

Häufige Fehler und Lösungen

  • Fehler 1: Der Dialog öffnet sich nicht.

    • Lösung: Stelle sicher, dass der richtige VBA-Befehl verwendet wird und dein Excel-Makro aktiv ist.
  • Fehler 2: Die Datei kann nicht geöffnet werden.

    • Lösung: Überprüfe den Dateipfad und stelle sicher, dass die Datei existiert.
  • Fehler 3: Der Arbeitsblattname existiert nicht.

    • Lösung: Vergewissere dich, dass der Arbeitsblattname korrekt geschrieben ist und sich in der geöffneten Datei befindet.

Alternative Methoden

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.


Praktische Beispiele

  1. 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
  2. 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

Tipps für Profis

  • Verwende vbFileOpen und vbFileSave für spezifische Dialogoptionen.
  • Nutze With-Anweisungen, um deinen Code übersichtlicher zu gestalten.
  • Überlege, ob du Application.FileDialog(msoFileDialogOpen) für mehr Flexibilität verwenden möchtest.

FAQ: Häufige Fragen

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.

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