Sie brauchen eine handliche #VBA-#Funktion, die eine #Excel-#Arbeitsmappe öffnet – aber nur, wenn diese nicht ohnehin bereits offen ist?
Nehmen Sie diese und verwenden Sie sie z.B. so:
Set myWb = WbOpen(varPath, varFileName)
Sie prüft, ob eine Arbeitsmappe mit dem Namen varFileName geöffnet ist, und versucht sie, falls sie nicht geöffnet ist, im Pfad varPath zu öffnen.
Public Function WbOpen(myFolder As Variant, myFile As Variant) As Workbook 'checks if a workbook is already open 'if not: opens it 'if not existing: error message 'to be used for e.g. Set myWb = WbOpen(varPath, varFileName) On Error Resume Next 'Fehlerbehandlung Set WbOpen = Workbooks(myFile) If WbOpen Is Nothing Then 'if Workbook is not open, find it If Dir(myFolder & "\" & myFile) <> "" Then 'if found: open it Set WbOpen = Workbooks.Open(myFolder & "\" & myFile, _ UpdateLinks:=False) Else 'if not found: tell the user MsgBox "File does not exist:" & vbLf & _ myFolder & "\" & myFile, vbOKOnly + vbCritical, "File " & _ myFolder & "\" & myFile & " not found." End If Else WbOpen.Activate End If End Function