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

Forumthread: VBA Öffnen Dialog Dateiauswahl

VBA Öffnen Dialog Dateiauswahl
02.11.2006 14:06:24
Micha
Hey Leute
Gesucht wird ein VBA-Script, das einen "Öffnen-Dialog" öffnet, welches dem User ermöglicht, eine Datei auszuwählen, die nach entsprechender Auswahl automatisch weiterverarbeitet wird.
(in der Weiterverarbeitung soll aus dieser Datei der Inhalt aus einer bestimmten Zelle in das Hauptdokument kopiert werden)
hat jemand von euch einen Vorschlag wie ich das realisiere? Danke für eure Hilfe!!
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Öffnen Dialog Dateiauswahl
02.11.2006 14:10:18
Rudi
Hallo,
siehe Application.GetOpenFilename
Gruß
Rudi
AW: VBA Öffnen Dialog Dateiauswahl
02.11.2006 14:47:22
Ptonka
Hallo Micha,
ich hatte mal ein ähnliches Problem.
Mein Code öffnet die Suchbox und die ausgewählte Datei wird im u.a. Code inkl. dem
vollständigen Pfad in Zelle B3 und nur der Dateiname in Zelle B5 geschrieben.
Vielleicht kannst Du den Code ja für Deine Zwecke abwandeln.

Sub Datei_finden()
Dim var As Variant
Dim icounter As Integer
Range("B3").Value = ""
Range("B5").Value = ""
Range("B3").Select
var = Application.GetOpenFilename("Alle-Dateien (*.*),*.*,", MultiSelect:=True)
On Error GoTo ERRORHANDLER
For icounter = 1 To UBound(var)
Wert = var(icounter)
'MsgBox icounter & ". Datei von " & UBound(var) & ": " & var(icounter)
Next icounter
Range("B3").Value = Wert
Wertlänge = Len(Wert)
For k = 1 To Wertlänge
Wertrechts = Right(Wert, k)
Slash = Left(Wertrechts, 1)
Select Case Slash
Case Is = "\"
Wertname = Right(Wert, k - 1)
Range("B5").Value = Wertname
GoTo weiter
End Select
Next k
weiter:
Range("B3").Select
Exit Sub
ERRORHANDLER:
Beep
MsgBox "Abbruch !"
Range("B3").Select
End Sub

Liebe Grüße,
Ptonka
Anzeige
AW: VBA Öffnen Dialog Dateiauswahl
02.11.2006 15:42:13
micha
wie funktioniert das mit der Application.GetOpenFilename Methode genau? damit ich anschließend Werte daraus kopieren kann?
AW: VBA Öffnen Dialog Dateiauswahl
02.11.2006 16:15:14
Rudi
Hallo,

Sub tt()
Dim strDatei, wks As Worksheet
strDatei = Application.GetOpenFilename
If strDatei <> False Then
Set wks = Workbooks.Open(strDatei).Sheets(1)
Else
Exit Sub
End If
'hier dann die Daten kopieren
'und die Datei wieder schließen
wks.Parent.Close False
Set wks = Nothing
End Sub
Gruß
Rudi
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Excel VBA: Öffnen des Dialogs zur Dateiauswahl


Schritt-für-Schritt-Anleitung

Um einen Excel VBA Dateiauswahl-Dialog zu öffnen und eine Datei auszuwählen, kannst Du die Methode Application.GetOpenFilename verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf "VBAProject (DeinDokument)" und wähle "Einfügen" > "Modul".

  3. Füge den folgenden Code ein:

    Sub DateiAuswaehlen()
       Dim strDatei As Variant
       strDatei = Application.GetOpenFilename("Alle Dateien (*.*), *.*", , "Wähle eine Datei")
    
       If strDatei <> False Then
           MsgBox "Du hast die Datei ausgewählt: " & strDatei
           ' Hier kannst Du weitere Verarbeitungsschritte hinzufügen
       Else
           MsgBox "Keine Datei ausgewählt."
       End If
    End Sub
  4. Führe das Makro aus: Drücke F5 oder gehe zu "Run" > "Run Sub/UserForm".

Der oben stehende Code öffnet ein Dialogfenster, in dem Du eine Datei auswählen kannst. Nach der Auswahl wird der vollständige Pfad als MessageBox angezeigt.


Häufige Fehler und Lösungen

  • Fehler: "Keine Datei ausgewählt."

    • Lösung: Stelle sicher, dass Du eine Datei im Dialog auswählst, bevor Du auf "Öffnen" klickst.
  • Fehler: Laufzeitfehler beim Öffnen des Dialogs.

    • Lösung: Überprüfe, ob Du in einem aktiven Excel-Dokument arbeitest und ob der VBA-Editor geöffnet ist.

Alternative Methoden

Wenn Du nach anderen Möglichkeiten suchst, eine Datei auszuwählen, kannst Du auch den FileDialog verwenden:

Sub DateiWählenMitFileDialog()
    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFilePicker)

    If fd.Show = -1 Then
        MsgBox "Ausgewählte Datei: " & fd.SelectedItems(1)
    Else
        MsgBox "Keine Datei ausgewählt."
    End If
End Sub

Diese Methode öffnet ebenfalls ein Dialogfeld, bietet jedoch mehr Anpassungsoptionen.


Praktische Beispiele

Hier ein Beispiel, in dem der Inhalt einer bestimmten Zelle aus der ausgewählten Datei in das Hauptdokument kopiert wird:

Sub DateiAuswaehlenUndKopieren()
    Dim strDatei As Variant
    Dim wks As Worksheet
    Dim quellWert As Variant

    strDatei = Application.GetOpenFilename("Excel-Dateien (*.xls; *.xlsx), *.xls; *.xlsx", , "Wähle eine Excel-Datei")

    If strDatei <> False Then
        Set wks = Workbooks.Open(strDatei).Sheets(1)
        quellWert = wks.Range("A1").Value ' Beispiel: Wert aus Zelle A1 kopieren
        ThisWorkbook.Sheets(1).Range("B1").Value = quellWert ' In Zelle B1 des Hauptdokuments einfügen
        wks.Parent.Close False
    Else
        MsgBox "Keine Datei ausgewählt."
    End If
End Sub

In diesem Beispiel wird der Wert aus Zelle A1 der ausgewählten Datei in Zelle B1 des Hauptdokuments kopiert.


Tipps für Profis

  • Nutze die MultiSelect-Eigenschaft, wenn Du mehrere Dateien auswählen möchtest:

    var = Application.GetOpenFilename("Alle-Dateien (*.*),*.*,", MultiSelect:=True)
  • Verwende Error Handling, um unerwartete Fehler abzufangen und den Nutzer zu informieren.

  • Experimentiere mit dem FileDialog für eine benutzerfreundlichere Dateiauswahl.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur bestimmte Dateitypen angezeigt werden?
Du kannst die Filteroptionen in der GetOpenFilename Methode anpassen, um nur bestimmte Dateitypen anzuzeigen, wie im Beispiel gezeigt.

2. Kann ich den Dialog so anpassen, dass er beim Öffnen eine bestimmte Datei zeigt?
Ja, Du kannst den zweiten Parameter von GetOpenFilename verwenden, um den Standardpfad anzugeben.

3. Welche Excel-Version benötige ich für die Verwendung von VBA?
VBA ist in den meisten Versionen von Excel ab 2000 verfügbar. Stelle sicher, dass Du eine Version verwendest, die VBA unterstützt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige