Wert aus UserForm in Modul

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm CheckBox MsgBox
Bild

Betrifft: Wert aus UserForm in Modul
von: Herbert
Geschrieben am: 21.04.2005 14:56:59
Hallo Forum,
ich stelle mich wieder einmal total blöd an und finde keine Lösung.
Ich habe in einer UF eine CheckBox, deren Zustand (True/False) ich gern in einer Prozedur eines normalen Moduls auswerten möchte.
Bisher lasse ich in eine Zelle einer Tabelle je nach Zustand einen Eintrag machen und lese diesen aus der Prozedur zur Auswertung aus - sehr umständlich ;-((
Mein Ziel sieht formalisiert ungefähr so aus:


Sub MachWas()
Dim....
usrTest.Show
If usrTest.chkTest.Value = True Then
mach was...
Else
mach was anderes...
End If
End Sub

Gibt es nicht auch einen direkten Weg?
Wenn ja - wie muss die Werte-Übergabe aussehen?
Gruß Herbert
Bild

Betrifft: AW: Wert aus UserForm in Modul
von: MichaV
Geschrieben am: 21.04.2005 15:17:41
Hi,
das sieht doch gut aus! Hast Du es mal probiert? Wo genau ist das Problem?
Gruß- Micha
PS: Das =True kannst Du weglassen, musst aber nicht. Das UF musst Du nicht unbedingt vorher anzeigen, um es auszuwerten. Wenn aber eine Eingabe gemacht werden soll, ist es natürlich besser.
Bild

Betrifft: AW: Wert aus UserForm in Modul
von: Herbert
Geschrieben am: 21.04.2005 15:35:24
Hi Micha,
habe ich probiert - leider zeigt mir eine vor die IF gestellte MsgBox immer False an (und die Else-Anweisung wird ausgeführt), auch wenn ich das Häkchen gesetzt habe. ;-(
Kann es sein, dass nach Beendigung der UF der Status der chkBox verloren geht?
Gruß Herbert
Bild

Betrifft: AW: Wert aus UserForm in Modul
von: MichaV
Geschrieben am: 21.04.2005 15:48:06
Hi,
hm, wir müssen verhindern, daß das UF entladen wird. Dann ist es scheinbar ganz weg. In VB wirds automatisch wieder geladen, wenn Abfragen erfolgen, in VBA offensichtlich nicht.
Versuch so im UserForm:

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Cancel = True 'nicht entladen
Me.Hide       'nur verstecken
End Sub

Bei mir klappts dann.
Gruß- Micha
Bild

Betrifft: AW: Wert aus UserForm in Modul
von: Herbert
Geschrieben am: 21.04.2005 16:09:58
Hi Micha,
so klappt es - danke.
Gibt es aber auch eine Möglichkeit, den Zustand der chkBox in eine nicht flüchtige Variable zu schreiben und die UF zu schließen?
Gruß Herbert
Bild

Betrifft: AW: Wert aus UserForm in Modul
von: MichaV
Geschrieben am: 21.04.2005 17:18:23
Hi,
klar, warum nicht? In einem Modul ganz oben public blnVar as boolean die Variable öffentlich deklarieren. Dann bei Bedarf blnVar= checkbox1.value zuweisen und später mit checkbox1.value=blnVar auslesen.
Gruß! Micha
PS: Vergiss das mit dem automatisch laden klappt nicht in VBA, das war Quatsch.
Bild

Betrifft: AW: Wert aus UserForm in Modul
von: MichaV
Geschrieben am: 21.04.2005 17:35:21
Hi,
das "bei Bedarf zuweisen" nochmal genauer:
Modul: Public blnCheckBox1Status As Boolean
UserForm:

Private Sub CheckBox1_Change()
blnCheckBox1Status=CheckBox1.Value
End Sub

Gruß- Micha!
Bild

Betrifft: AW: Wert aus UserForm in Modul
von: MichaV
Geschrieben am: 21.04.2005 17:37:25
Was mach ich denn? grrrr
blnCheckBox1Status=cbool(CheckBox1.Value)
Bild

Betrifft: AW: Wert aus UserForm in Modul
von: Herbert
Geschrieben am: 21.04.2005 19:03:46
Hi Micha,
das klappt auch wunderbar und bei dieser Gelegenheit habe ich auch gleich den Sinn der Public-Variablen verstanden ;-))
Werde diese Möglichkeit nutzen und die UF nicht nur verstecken.
1000-Dank
Gruß Herbert
Bild

Betrifft: AW: Wert aus UserForm in Modul
von: MichaV
Geschrieben am: 21.04.2005 19:06:57
Ha das freut mich ja!
Frohes Schaffen noch! Micha
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Wert aus UserForm in Modul"