Folgendes Problem:
Arbeitsmappe mit 2 Tabellenblätter
in Tabelle2 sind Datensätze enthalten.
in Tabelle1 soll in einer Zelle eine selbstgeschriebene Funktion
aufgerufen werden. Diese Funktion öffnet ein UserForm in dem der Nutzer
Daten auswählen kann. Die Daten kommen aus Tabelle2 und stehen in Listboxen.
Mit einem Button "Übernehmen" wird aus dem Userform
die SubProzedur SetRaumCode aus Modul1 aufgerufen um die Daten an eine Variable zu übergeben.
Die Function greift dann auf diese Variable zurück und benutzt sie als Rückgabeargument,
das dann in der Zelle angezeigt werden soll.
Wenn ich das ganze als Makro "DB_Edit" aufrufe werden im Userform die ListBoxen
beim initialisieren gefüllt, angezeigt und der Nuzter kann Daten auswählen und
ich kann sie weiterverarbeiten. Klappt alles.
Wenn ich das ganze in einer Zelle in der Tabelle1 als Function "=formu()" aufrufen will wird nur das Userform ohne Daten angezeigt und es werden auch keine Prozeduren wie zB OnButton_Click oder UserForm_Initialize() aufgerufen.
Wieso verhält sich das so unterschiedlich ?
Es nützt auch nichts in der Function die Sub-Prozedur "DB_Edit" aufzurufen.
'Dieser Code steht in Modul1
Dim myCode As String
Public Sub DB_Edit()
Dim xx as String
Load UserForm1
UserForm1.Show
Unload UserForm1
Close
xx = myCode
End Sub
Public Function formu() As String
Load UserForm1
UserForm1.Show
Unload UserForm1
Close
End Sub
Public Sub SetRaumCode(ByVal myRaumCode As String)
myCode = myRaumCode
End Sub