Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
860to864
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
860to864
860to864
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

860to864: UserForm mit Function aufrufen

UserForm mit Function aufrufen
05.04.2007 12:19:56
Braun
Weiß jemand Rat?
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

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Das liegt daran, dass Funktionen nur...
08.04.2007 19:12:00
Luc:-?
...den Wert der Zelle, in der sie stehen, ändern können, Mr Braun!
Wenn du das umgehen willst, muss die Funktion ein Ergebnis liefern, das ein Ereignis auslöst. Die zum Ereignis gehörende Prozedur kann dann deine normale Subprozedur aufrufen. Halte das Ganze aber für wenig sinnvoll, wenn Berechnen auf automatisch gesetzt ist (darum können Fktt sowas auch nicht!). Und wenn Berechnen manuell ist, muss die Zelle ohnehin angeklickt wdn! Also alles noch mal überdenken und sehen, ob das nicht auch gleich ganz über Ereignisse realisiert wdn kann.
Ostergrüße Luc :-?
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige