Werte werden aus UserForm in Modul nicht übernomme

Hallo VBA-Gemeinde,
vorneweg, habe nur anfänger kentnisse in vba. bitte seid gnädig :smile:

meine werte werden nicht zum entsprechenden modul weitergeleitet

ich habe in einer userform die funktion

private sub buttonc_Click()
'Kiste ist eine checkbox
If Kiste.Value = True Then k1 = True

End sub

dies rufe ich auf in

Option Explicit
Public k1 as boolean
Sub calc()

k1 = false

UserForm.Show

If k1 = True Then
MsgBox („aufruf:blub“)
End If

wieso werden meine werte nicht übernommen?
Hoffe ihr könnt mir helfen.
Luchs

Hallo Luchs,

meine werte werden nicht zum entsprechenden modul
weitergeleitet

private sub buttonc_Click()
'Kiste ist eine checkbox
If Kiste.Value = True Then k1 = True
MsgBox k1
End sub

k1 wird schon auf True gesetzt

Option Explicit
Public k1 As Boolean

Sub calc()
UserForm1.Show
MsgBox k1
End Sub

ABER „MsgBox k1“ kommt erst dann wenn die Userform beendet wurde, solange verharrt Vba an dieser Stelle.

Gruß
Reinhard

hallo reinhard,
erstmal danke für die schnelle und verständliche antwort!

diese msgbox war eigentlich nur ein beispiel, um zu testen ob meine werte in dem modul ankommen.
im prinzip hab ich ein programm, das in der userform mehrere werte durch usereingaben übergeben bekommt.

sobald man auf den knopf buttonc_Click() drückt sollen diese in dem sub calc() modul zum weiterverarbeiten zwischengespeichert werden.
die

gibt es eine möglichkeit, die userform.show methode zu terminieren, dabei die übergebenen werte gleichzeitig zwischen zu speichern?

Grüße Luchs

kann es sein, dass ich k1 hier festlegen muss

public k1 as boolean

’ in userform

(Kiste_Change ist eine checkbox)
Private Sub Kiste_Change()

if Kiste.Value = true then k1 = true
End Sub

gruß luchs

kann es sein, dass ich k1 hier festlegen muss
public k1 as boolean
’ in userform

Hallo Luchs,

nein.
Zum einen heißt es überall globale Variablen gehören in irgendein Standardmodul. Deshalb halte ich mich daran. Mag sein daß es auch in einer UF ginge, aber so Hinweise haben Hintergründe die ich ja gar nicht erkennen kann wenn es bei mir auch klappt, wenn ich die globale Variable in die UF reinschreibe.

Zum anderen, Profis versuchen globale Variablen zu vermeiden wo es geht.
Naja, die haben da auch 30-500 Module und Mappen von 300 MB zu pflegen :smile:
Und da sind globale Variablen des Teufels bei der Fehlersuche :frowning:
Denn das Riesenproblem ist, wo in welchem der vielen Module wurde die verdammte Variable auf True gesetzt obwohl False drin sein sollte in dem Moment wo sie im Modul 501 geprüft wird.
Na dann frohes Suchen mit F8 *grins*

Gruß
Reinhard

dann werd ich mich an dich halten und diese teuflischen dinger um himmels willen vermeiden
hab mir gerade das programm komplett zerschossen, weil ich die iwo doppelt drin hatte

gott segne die sicherungen :smile:
hab das problem jetzt gelöst,
indem ich das ganze einfach in Kiste_change()
initialisiert hab

danke dir vielmals!

Gruß luchs