Variablen von Userform in Modul übertragen

Hallo Experten,

ich weis, langsam fang ich an mit den Fragen zu nerven;D

ich muss aber Variablen die im Userform auftauchen ins Modul übertragen. Im Internet sind einige Beispiele, diese verstehe ich aber nicht ganz.
Zu meinem Beispiel:
ich hab ein Userform mit einem Ok-Button, ->
-----------------Makro OK_click-----------------

strApfel = True
strBirne = False
strKirsche = True

diese Variablen sollen jetzt ins Modul1:

obwohl diese Variablen Public sind erkennt er diese nicht im Modul1.

DANKE!!!

WillsWissen

Leider kann ich dir nicht weiterhelfen, wenn ich keine weiteren Infos bekomm. Schick mir mal das gesamte Script zu, dann schau ich mal drüber, was net so ganz passt.

Thorsten

Grüezi WillsWissen

ich muss aber Variablen die im Userform auftauchen ins Modul
übertragen. Im Internet sind einige Beispiele, diese verstehe
ich aber nicht ganz.
Zu meinem Beispiel:
ich hab ein Userform mit einem Ok-Button, ->
-----------------Makro OK_click-----------------

strApfel = True
strBirne = False
strKirsche = True

diese Variablen sollen jetzt ins Modul1:

obwohl diese Variablen Public sind erkennt er diese nicht im
Modul1.

Wo genau hast Du die Variablen denn deklariert?

Sie sollten in einem Modul als Public deklariert werden, dann sind sich allen anderen Modulen auch bekannt.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hi Thomas,

nochmals danke für deine Hilfe ;D

sollen die Variablen im Userform als Public oder die Varialben im Modul1 als Public deklariert werden.
Momentan sieht mein Code so aus:

----------------Userform-----------------------------
Option Explicit
Public strApfel As String
Public strBirne As String

Public Sub cmdOK_Click ()

hier sind die Variablen die ich ins Modul übertragen will bzw. diese Variablen will ich im Modul auch benutzen.

End Sub
----------------Modul------------------------------
Public Sub message ()

Dim strApfel As String
Dim strBirne As String

MsgBox (strApfel & strBirne)

-> leider wird hier nichts angezeigt, weil die Variablen vom Userform nicht ins Modul übertragen werden.

Grüezi WillsWissen

Hmmm, ich schlage vor, dass du dich mal ein wenig mit der Lebendauer und der Deklaration von Variablen in der Online-Hilfe befasst…

sollen die Variablen im Userform als Public oder die Varialben
im Modul1 als Public deklariert werden.

Das sagte ich doch schon : im Modul!!

----------------Userform-----------------------------
Option Explicit
Public strApfel As String
Public strBirne As String

Public Sub cmdOK_Click ()

hier sind die Variablen die ich ins Modul übertragen will bzw.
diese Variablen will ich im Modul auch benutzen.

End Sub
----------------Modul------------------------------
Public Sub message ()

Dim strApfel As String
Dim strBirne As String

MsgBox (strApfel & strBirne)

-> leider wird hier nichts angezeigt, weil die Variablen vom
Userform nicht ins Modul übertragen werden.

Du hast ja auch gerade falschrum deklariert:

Public muss im Modul sein, die Zuweisung daran dann über die UF:

----------------Modul------------------------------
Option Explicit

Public strApfel As String
Public strBirne As String

Public Sub message()
 MsgBox strApfel & Chr(10) & strBirne
End Sub




----------------Userform-----------------------------
Option Explicit

Private Sub CommandButton1\_Click()
 strApfel = "Ich bin ein Apfel"
 strBirne = "Ich bin eine Birne"
End Sub

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

wenn ich dich richtig verstehe, brauchst du globale variablen, die sowohl in der userform als auch im modul „methode“ gültig sein sollen. globale variablen werden ín einem modul (z.b. modul1) vor allen prozeduren (z.b. sub methode) deklariert, also:

modul1

public strApfel as boolean (oder string)
public strBirne as boolean
public strKirsche as boolean

sub methode()

end sub

userform

-----------------Makro OK_click-----------------

strApfel = True
strBirne = False
strKirsche = True

Hallo WillsWissen,

sind diese Variablen denn auch mit DIM festgelegt worden? Nur dann können sie in verschiedenen Modulen benutzt werden, ohne in einem Arbeitsblatt zwischengespeichert zu werden.

Also am Anfang des Moduls mit dem Aufruf der UserForm, folgendes eintragen:

DIM strBirne, strApfel, strKirsche As Boolean

eintragen.

Gruß
Natator

Hallo,

versuch es umgekehrt. Deklariere diese Variablen in einem Modul, dann kannst Du diese überall in Deinem Code nutzen, auch in der Userform.

LG Gerd

Hallo WillsWissen,

sorry, ich bin jetzt kurz angebunden. Mein Ziel ist dir lieber inhaltlich zu antworten und nicht lange an der Formulierung zu feilen.

-----------------Makro OK_click-----------------

strApfel = True

Wenn du einer Variabel den Wert True oder False zuweißt, dann bitte nicht als String definieren. Also eher Dim blnApfel as boolan

strBirne = False

dito

strKirsche = True

dito


Am besten du übergibt die Varibeln der Prozedure in dem Du

Call prozedurMachWas(blnKirsche as boolan, blnXYZ as Boolan)

schreibst.

in der Prozedur

sub prozedurMachWas(blnKirsche as boolan, blnXYZ as Boolan)

Anweisung
Anweisung
Anweisung

end sub

Grundsätzlich, schau Dich auch auf Herber.de um.

Gruß
Ramaka

Hey

hast du das problem lösen können?
also ich hab ein separates modul erstellt, das ich dann umbenannt habe. z.b.: globaleVariablen. und dort dann diese variablen deklarieren. nun müssen beim OK klicken nicht strApfel = True stehen sondern so, dass es in globaleVariablen die variable strApfel. ich weis aber gerade nicht auswendig wie du darauf zugreifen kannst

gruss
m