Hallo, liebe VBA-Gurus!
Ich plag mich nun schon seit einiger Zeit mit folgendem Problem ab und komm einfach nicht zu einer Lösung:
Über ein AddIns-Makro (xlam) können in einer Userform bestimmte xlsm-Dateien aufgerufen werden.
In diesen Dateien müssen Einträge vorgenommen werden, welche wiederum mittels ADODB-Connection in einer MSSQL-Datenbank gespeichert werden.
Damit ich den Fokus auf der geöffneten Datei habe, muss ich die Userform mit .Hide ausblenden.
Das funktioniert alles ganz prima!
Ich schaffe es allerdings nicht, dass ich nach der Bearbeitung der Datei diese schließe und gleichzeitig wieder das Addins-Userform anzeige (für den Aufruf einer anderen Datei). Sobald ich nämlich die geöffnete Datei schließe, ist Feierabend - sämtlicher Code, der danach folgt, wird nicht mehr ausgeführt.
Ich hab's auch schon damit probiert, vor dem Schließen (in Workbook_BeforeClose) das AddIns-Userform mit Application.Run wieder anzuzeigen und dann erst die Datei zu schließen - aber dann ist auch die Userform wieder weg!
Anbei eine zusammengefasste Abfolge des Codes:
1) ADDINS.xlam: Beim Öffnen des Addins wird das Flag userform_initial versorgt
userform_initial = True
2 + 6) ADDINS.xlam: Beim Initialize der Userform wird abhängig vom Flag die aufgerufene Datei geschlossen
Private Sub AddIns_Userform_Initialize()
If userform_initial = False then
Workbooks(Testdatei.xlsm).Close False
End if
End Sub
3) ADDINS.xlam: Im Userform AddIns_Userform wird die Datei beim Klick auf Button OK geöffnet
Private Sub cmdOK_Click()
Workbooks.Open Testdatei.xlsm
End Sub
4) TESTDATEI.xlsm: Beim Schließen der Datei mit dem OK-Button wird die Addins-Prozedur ShowUserform aufgerufen:
Private Sub cmdClose_Click()
Application.Run "'AddIns.xlam'!ShowUserform"
End Sub
5) ADDINS.xlam: Das Flag wird auf False gesetzt und die Userform wieder aufgerufen:
Public Sub ShowUserform
userform_initial = False
AddIns_Userform.Show
End Sub
Hat jemand eine Idee, wie's geht?
lG, CHRiSi
|