# Datei in Excel per Makro/VBA öffnen



## mirscho (3. Juli 2009)

Halli Hallo!

Leider bin ich weder mit der Windowshilfe weiter gekommen, noch nach längerer Zeit des Lesens hier im Forum.

Ich möchte ganz einfach eine Abfrage in einem Makro haben, welche die Auswahl einer Datei fordert.

Genauer: 
Es soll eine .csv Datei sein. Hier soll ein Dialog im Makro/ während das Makro läuft (der normale Datei öffnen Dialog von Micrsoft Office eben) aufgehen, wo ich dann die entsprechende Datei auswählen kann.

Ist das möglich? ich würde mich auch mit einer Lösung zufriedengeben die mehrere Makros verwendet.

Ich verwende Excel 2003.

Danke schon einmal om Voraus


----------



## tecla (3. Juli 2009)

Hallo spliner

Hier der Beispiel-Code von Microsoft:


```
Sub FileDialog()
    'Declare a variable as a FileDialog object.
    Dim fd As FileDialog

    'Create a FileDialog object as a File Picker dialog box.
    Set fd = Application.FileDialog(msoFileDialogFilePicker)

    'Declare a variable to contain the path
    'of each selected item. Even though the path is a String,
    'the variable must be a Variant because For Each...Next
    'routines only work with Variants and Objects.
    Dim vrtSelectedItem As Variant

    'Use a With...End With block to reference the FileDialog object.
    With fd

        'Use the Show method to display the File Picker dialog box and return the user's action.
        'The user pressed the action button.
        If .Show = -1 Then

            'Step through each string in the FileDialogSelectedItems collection.
            For Each vrtSelectedItem In .SelectedItems

                'vrtSelectedItem is a String that contains the path of each selected item.
                'You can use any file I/O functions that you want to work with this path.
                'This example simply displays the path in a message box.
                MsgBox "The path is: " & vrtSelectedItem

            Next vrtSelectedItem
        'The user pressed Cancel.
        Else
        End If
    End With

    'Set the object variable to Nothing.
    Set fd = Nothing

End Sub
```


Grüsse, Tecla


----------



## Drogist (4. Juli 2009)

Hallo spliner,

mit der Windows-Hilfe wirst du bei solchen Sachen auch nicht weiter kommen. Hier ist die Hilfe in Excel VBA wesentlich ergiebiger ;-) 
Aber zugegeben, auch hier ist der Weg zum Ziel sehr steinig, wenn dir die richtigen Suchbegriffe fehlen.

Na gut, _tecia_ hat dir ja schon etwas gepostet. Ob das für deine Belange so sehr zielführend ist, weiß ich nicht. Ich glaube, dass der von mir erstellte Code etwas näher an deinem Problem dran ist:

```
Option Explicit

Sub CSVfileOeffnen()
   Dim CSVfile As Variant
   CSVfile = Application.GetOpenFilename( _
      FileFilter:="CSV-Dateien (*.csv), *.csv", _
      MultiSelect:=False)
   If Not CSVfile Then Exit Sub  'Abbrechen gewählt
   
   Workbooks.Open Filename:=CSVfile, Local:=True
   
   On Error GoTo FEHLER
   Exit Sub

FEHLER:
   Beep
   MsgBox "Abbruch!", vbCritical, "Fehler beim Öffnen der Datei"
End Sub
```
Ich denke ja, dass das File auch geöffnet und nicht nur ausgesucht werden soll ...


----------

