[vba/word] werte aus userform

hallo,

ich habe ein userform gemacht, in dem der user diverse einstellungen
machen kann.

wie kann ich in meinem »hauptmakro«, der das userform aufruft,

Load freshTXTusrForm
freshTXTusrForm.Show

anschließend die werte aus den ganzen checkboxes etc. weiter
verarbeiten?

danke schon mal.
tobias

Hallo Tobias.

Das kommt darauf an, wie Du die Daten verwendest.
Müssen die Daten permanent zur Verfügung stehen, solange die Anwendung läuft, dann solltest Du in einem Modul öffentliche Variablen deklarieren, die die Werte aufnehmen, wenn das UserForm geschlossen wird.

Soll nach dem Schließen Deines UserForms eine einmalige Prozedur aufgerufen werden, dann kannst Du diese Prozedur auch ins QueryClose-Ereignis Deines UserForm schreiben.

Viele Grüße
Carsten

Hallo Carsten,

Das kommt darauf an, wie Du die Daten verwendest.
Müssen die Daten permanent zur Verfügung stehen, solange die
Anwendung läuft, dann solltest Du in einem Modul öffentliche
Variablen deklarieren, die die Werte aufnehmen, wenn das
UserForm geschlossen wird.

Soll nach dem Schließen Deines UserForms eine einmalige
Prozedur aufgerufen werden, dann kannst Du diese Prozedur auch
ins QueryClose-Ereignis Deines UserForm schreiben.

d.h., ich habe entweder die Möglichkeit, globale Variablen zu
benutzen oder den gesamten Code in den »Codebereich« des userforms zu
setzen? (Ersteres habe ich jetzt schon implementiert.)
Ich hatte gehofft, es gibt eine Möglichkeit, die lokalen Variablen
aus dem userform in lokale Variablen im Modul zu übergeben…

Gruß
Tobias

Hallo Tobias.

Ich hatte gehofft, es gibt eine Möglichkeit, die lokalen
Variablen
aus dem userform in lokale Variablen im Modul zu übergeben…

Das geht über eine „Zwischenstation“. Bei genauerer Betrachtung müßte das eigentlich doppelt gemoppelt sein, aber ich kenne ja Deinen Code nicht bzw. was Du damit vorhast.

Eine interessante Methode könnte es sein, einen eigenen Typen dafür zu deklarieren. Das Schema dafür wäre so :

  • in irgendeinem Modul

    Public Type WerteTauscher
    Wert1 As Boolean
    Wert2 As String
    Wert3 As Long
    End Type
    Public Tauscher As WerteTauscher

  • in Deinem UserForm

    Private FormTyp As WerteTauscher

  • in Deinem speziellen Modul

    Private ModulTyp As WerteTauscher

Du kannst dann die Werte aus Deinem UserForm mit nur zwei Anweisungen an Dein Modul übergeben :

  • vor dem Verlassen Deines UserForm dieser Code z.B im QueryClose-Ereignis

    Tauscher = FormTyp

  • vor dem Ausführen Deines Modul-Codes dieser Code an geeigneter Stelle

    ModulTyp = Tauscher

Vielleicht hilft Dir das ja weiter.

Viele Grüße
Carsten

1 Like

Hallo Carsten,

die Variable Tauscher ist dann ja aber trotzdem eine globale
Variable. Aber das Konstrukt ist ganz interessant…

Gruß
Tobias