bisher habe ich jedes meiner Probleme entweder selbst, durch Diskussionen mit Kollegen oder mit einer Internetrecherche lösen können, aber jetzt weiß ich wirklich nicht weiter.
Folgendes Problem: Ich habe als eine Art "Schaltzentrale" eine UserForm erstellt, aus der einige (= viele) verschiedene Excel-Dateien, die in komplizierten Ordnerstrukturen "vergraben" sind, schnell auf Knopfdruck geöffnet werden können (= UserFormDatei).
So weit, so gut. Das UserForm schließt sich, die Datei wird geöffnet (= NeueDatei) und die NeueDatei befindet sich anschließend im Vordergrund. Alles richtig.
ABER: Möchte ich dann die NeueDatei über das Windows-Standard-X oben rechts schließen, passiert entweder nichts oder ich werde gefragt, ob ich die UserFormDatei vor dem Schließen speichern möchte. Wohl gemerkt, im Vordergrund befindet sich die NeueDatei.
Verwende ich das Mausrad zum Scrollen, bewegt sich in der NeueDatei nichts, die Scrollbewegung wird aber in der UserFormDatei durchgeführt.
Ich habe sehr viel versucht, aber nichts hat geholfen. Ich hoffe, jemand von Euch kann helfen. Hier ist mein Code:
UserForm
Private Sub cmdLanzeitauswertung_Click()
Dim wkbDatei As Workbook, strPfad As String, strDateiname As String
strPfad = "ordner1\ordner2\ordner3\ordner4\ordner5\ordner6\ordner7\"
strDateiname = "Langzeitauswertung 04-ff.xlsm"
Set wkbDatei = DateiOeffnen(strPfad & strDateiname)
Unload dlgAuswahlfenster
Set wkbDatei = Nothing
End Sub
Modul modFunktionen
Function DateiOeffnen(strDatei As String) As Workbook
Dim wkbDatei As Workbook
Application.ScreenUpdating = False
Application.DisplayAlerts = False
' IST DIE GEWÜNSCHTE DATEI BEREITS GEÖFFNET?
' Extrahiere den Dateinamen aus der übergebenen Dateipfad/Dateinamen-Kombination
' (strDatei)
' Prüfe, ob geöffnet
If DateiLokalGeoeffnet(Mid(strDatei, InStrRev(strDatei, "\") + 1, _
Len(strDatei) - InStrRev(strDatei, "\"))) Then
Set wkbDatei = Application.Workbooks(Mid(strDatei, _
InStrRev(strDatei, "\") + 1, Len(strDatei) - _
InStrRev(strDatei, "\")))
Set DateiOeffnen = wkbDatei
' IST SIE NICHT GEÖFFNET, DANN
' Serverpfad (Konstante) mit Dateinamen zusammenführen und Datei öffnen
Else
On Error Resume Next
Set wkbDatei = Application.Workbooks.Open(p_cstrServerpfad & _
strDatei, , , , , , , , , , , , False)
' Fehler beim Öffnen?
If Err.Number 0 Then
Err.Clear
MsgBox "Die Datei '" & p_cstrServerpfad & strDatei & _
"' konnte nicht geöffnet werden!", vbCritical, _
p_cstrAppName
DateiOeffnen = Nothing
Exit Function
End If
On Error GoTo 0
Set DateiOeffnen = wkbDatei
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Function
Function DateiLokalGeoeffnet(ByVal strName As String) As Boolean
On Error Resume Next
DateiLokalGeoeffnet = Not Workbooks(strName) Is Nothing
On Error GoTo 0
End Function