mit #VBA eine #Excel #Arbeitsmappe #öffnen, falls nicht ohnehin offen

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