Hallo Thomas,
probiere bitte folgenden Code aus, vielleicht hilft er dir weiter. Bei Klick auf den Button öffnet sich der „Datei öffnen“-Dialog. Hierüber wird die zu öffnende Datei gewählt.
Ist diese Datei noch nicht geöffnet, so wird sie in Excel geöffnet. Ist die Datei bereits geöffnet, so wird sie aktiviert. Die Prüfung auf Gleichheit erfolgt über den Dateinamen. Evtl. müsstest du dies anpassen auf den kompletten Verzeichnispfad.
Grüße,
Marco
Sub Schaltfläche1_BeiKlick()
Dim bExists As Boolean
Dim oWorkbook As Object
ChDir „“
ChDrive „c:“
'Das Dialogfenster
Dateiname = Application.GetOpenFilename _
(„Microsoft Excel-Dateien (*.xls),*.xls“)
If Dateiname = False Then Exit Sub
MsgBox „Ihre Auswahl:“ & vbNewLine & Dateiname
’ Prüfen ob Datei bereits geöffnet ist
bExists = False
With Application
For Each oWorkbook In .Workbooks
If UCase$(oWorkbook.Name) = Dateiname Then
’ Jetzt aktivieren
Windows(oWorkbook.Name).Activate
bExists = True
Exit For
End If
Next
End With
’ Mappe neu laden!
If Not bExists Then
On Error Resume Next
Workbooks.Open Filename:=Dateiname, ReadOnly:=False
On Error GoTo 0
End If
End Sub