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

Explorer öffnen Datei und Speicherort auswählen u

Forumthread: Explorer öffnen Datei und Speicherort auswählen u

Explorer öffnen Datei und Speicherort auswählen u
27.01.2013 21:38:31
Ludmilla
Userbild
Hallo zusammen!
Ich habe eine UserForm erstellt, welches folgendes beinhaltet:
1. ein Button mit welchem man eine Datei auswählen kann.
Code:

Private Sub Datei_auswählen_Click()
FilePath = Application.GetOpenFilename("PDF Files (*.pdf), *pdf")
If FilePath  False Then
TextBox1.Value = FilePath
End If
End Sub

2. ein Button mit welchem man die UserForm schliessen kann:
Code:

Private Sub abbrechen_Click()
End
End Sub

Probleme:
1. Kopieren nach: Nun weiss ich nicht wie ich es geht, dass ich den Explorer öffne und ein Zielort auswählen kann
2. Kopieren: ich möchte nun die bei "Datei auswählen" Datei nach "Kopieren nach" Pfad kopieren.
wäre über die Lösung meiner Probleme sehr froh!
Ich danke euch schon im Vorraus!

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Explorer öffnen Datei und Speicherort auswählen u
27.01.2013 22:04:54
Dirk
du könntest bei "kopieren nach" eine Ordneransicht erscheinen lassen.
Private Sub CommandButton1_Click()
Dim ordner As String
ordner = GetFolder("c:")
lbl1.Caption = ordner
End Sub
Function GetFolder(strPath As String) As String
Dim fldr As FileDialog
Dim sItem As String
Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
With fldr
.Title = "Select a Folder"
.AllowMultiSelect = False
.InitialFileName = strPath
If .Show  -1 Then GoTo NextCode
sItem = .SelectedItems(1)
End With
NextCode:
GetFolder = sItem
Set fldr = Nothing
End Function
kopieren kannst du mit folgendem Befehl
filecopy "Quelle", "ziel"
Vieleicht hilf dir das weiter.
Gruß
Dirk
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Explorer in Excel VBA öffnen und Datei auswählen


Schritt-für-Schritt-Anleitung

Um den Explorer in Excel VBA zu öffnen und eine Datei auszuwählen, kannst Du den folgenden Code verwenden. Dieser öffnet einen Datei-Dialog, in dem der Benutzer eine PDF-Datei auswählen kann.

Private Sub Datei_auswählen_Click()
    FilePath = Application.GetOpenFilename("PDF Files (*.pdf), *pdf")
    If FilePath <> False Then
        TextBox1.Value = FilePath
    End If
End Sub

Wenn du zusätzlich einen Button erstellen möchtest, um einen Zielordner auszuwählen, kannst Du den nachfolgenden Code verwenden:

Private Sub CommandButton1_Click()
    Dim ordner As String
    ordner = GetFolder("c:")
    lbl1.Caption = ordner
End Sub

Function GetFolder(strPath As String) As String
    Dim fldr As FileDialog
    Dim sItem As String
    Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
    With fldr
        .Title = "Wähle einen Ordner"
        .AllowMultiSelect = False
        .InitialFileName = strPath
        If .Show <> -1 Then GoTo NextCode
        sItem = .SelectedItems(1)
    End With
NextCode:
    GetFolder = sItem
    Set fldr = Nothing
End Function

Schließlich kannst Du die ausgewählte Datei mit folgendem Befehl an den gewünschten Zielort kopieren:

FileCopy "Quelle", "Ziel"

Häufige Fehler und Lösungen

  1. Fehler: Der Benutzer wählt keine Datei aus.

    • Lösung: Überprüfe, ob die Rückgabe von GetOpenFilename nicht False ist, bevor Du die Datei weiterverarbeitest.
  2. Fehler: Der Zielordner wird nicht richtig ausgewählt.

    • Lösung: Stelle sicher, dass die GetFolder-Funktion korrekt implementiert ist, und dass Du FileDialog richtig initialisierst.
  3. Fehler: Die Datei kann nicht kopiert werden.

    • Lösung: Überprüfe, ob der Quell- und Zielpfad korrekt angegeben sind und dass die Datei nicht in einem anderen Programm geöffnet ist.

Alternative Methoden

Neben der Verwendung von Application.GetOpenFilename kannst Du auch die Application.FileDialog-Methode nutzen, um eine Datei auszuwählen. Hier ist ein Beispiel:

Sub DateiAuswählen()
    Dim fdlg As FileDialog
    Set fdlg = Application.FileDialog(msoFileDialogFilePicker)
    With fdlg
        .AllowMultiSelect = False
        .Title = "Wähle eine Datei"
        If .Show = -1 Then
            MsgBox .SelectedItems(1)
        End If
    End With
End Sub

Praktische Beispiele

Ein praktisches Beispiel könnte eine UserForm sein, in der Du sowohl eine Datei auswählen als auch einen Zielordner festlegen kannst. Hier ist ein einfaches Beispiel:

Private Sub btnDateiAuswählen_Click()
    FilePath = Application.GetOpenFilename("Excel Files (*.xls; *.xlsx), *.*")
    If FilePath <> False Then
        txtDateiPfad.Value = FilePath
    End If
End Sub

Private Sub btnOrdnerAuswählen_Click()
    Dim ordner As String
    ordner = GetFolder("c:")
    If ordner <> "" Then
        txtOrdnerPfad.Value = ordner
    End If
End Sub

Private Sub btnKopieren_Click()
    FileCopy txtDateiPfad.Value, txtOrdnerPfad.Value & "\" & Dir(txtDateiPfad.Value)
End Sub

Tipps für Profis

  • Nutze Option Explicit am Anfang Deiner Module, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft, Fehler zu vermeiden.
  • Verwende error handling (z.B. On Error Resume Next), um unerwartete Fehler während der Dateiauswahl zu handhaben.
  • Denke daran, die Benutzeroberfläche intuitiv zu gestalten, indem Du klare Beschriftungen und Anweisungen verwendest.

FAQ: Häufige Fragen

1. Wie kann ich den Explorer öffnen und eine Datei auswählen? Um den Explorer zu öffnen, kannst Du die Methode Application.GetOpenFilename verwenden, wie im Schritt-für-Schritt-Abschnitt beschrieben.

2. Gibt es eine Möglichkeit, einen Ordner auszuwählen, ohne die Datei zu öffnen? Ja, Du kannst die FileDialog-Methode mit msoFileDialogFolderPicker nutzen, um nur einen Ordner auszuwählen, ohne eine Datei zu öffnen.

3. Wie kann ich mehrere Dateien auswählen? Wenn Du mehrere Dateien auswählen möchtest, setze AllowMultiSelect = True in der FileDialog-Methode und iteriere über die SelectedItems.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige