PDA

Vollständige Version anzeigen : Variablen einer UserForm übergeben


Reta
02.07.2015, 13:53
Hallo liebe Forum-Nutzer,

ich bin wieder auf ein kleines Problem in meinem Code gestoßen...

Ich habe eine UserForm, in die der Nutzer einen Wert eingeben kann. Nun hat er die Wahl, ob er aufhören will und den OK-Knopf klickt oder ob er noch weitere Werte eingeben möchte. Dann klickt er "Weiteren Wert eingeben" (cmdWeitere).

Jedes Mal, wenn der Nutzer einen der beiden Knöpfe drückt, wird der eingegebene Wert in EingabeWeitereVar() gespeichert.

So habe ich, sobald der Nutzer OK klickt, eine Menge an Werten.

In meinem Hauptprogramm (dessen Sub nicht unter den Subs der UserForm steht) wird nun die UserForm aufgerufen. Die Werte werden eingegeben und der Nutzer klickt irgendwann OK und die UserForm wird geschlossen.

Wie kann ich jetzt die Werte aus EingabeWeitereVar() in meinem Hauptprogramm weiter nutzen bzw. darauf zugreifen??

Hier der Code meiner UserForm:


Option Explicit

Public zählerWeitere As Integer

Private Sub cmdWeitere_Click()

Dim EingabeWeitereVar() As Integer
ReDim EingabeWeitereVar(10)
Dim i As Integer

i = i + 1
zählerWeitere = zählerWeitere + 1

EingabeWeitereVar(i) = BoxEingabeVarNR.Value

BoxEingabeVarNR.Value = ""

End Sub

Private Sub cmdOK_Click()

Dim EingabeWeitereVar() As Integer
ReDim EingabeWeitereVar(10)

EingabeWeitereVar(zählerWeitere + 1) = BoxEingabeVarNR.Value
Weitere.Hide

End Sub


Was muss in meinem Hauptprogramm stehen??

Ich hoffe, mir kann jemand helfen!
Dankeschön :sun:

aloys78
02.07.2015, 16:48
Hallo Reta,
Wie kann ich jetzt die Werte aus EingabeWeitereVar() in meinem Hauptprogramm weiter nutzen bzw. darauf zugreifen??
Folgende Anweisung in einem Modul spezifieren
Public EingabeWeitereVar(10) as Integer
und alle Dim- und Redim-Anweisungen zu EingabeWeitereVar() entfernen

Gruß
Aloys

Reta
06.07.2015, 07:38
Hallo Aloys,

danke, das probier ich mal!!!

Viele Grüße

Reta
06.07.2015, 08:10
Hallo Aloys,

ich hab noch ein kleines Problem.

Ich habe die Variable in einem Modul als public gespeichert und kann nun auch in meinem Prozess der Userform die Werte der Eingabefelder hierin speichern. Das funktioniert ohne Probleme.


Option Explicit

Private Sub cmdWeitere_Click()

zählerWeitere = zählerWeitere + 1

EingabeWeitereVar(zählerWeitere) = BoxEingabeVarNR.Value

BoxEingabeVarNR.Value = ""

End Sub

Private Sub cmdOK_Click()

zählerWeitere = zählerWeitere + 1

EingabeWeitereVar(zählerWeitere) = BoxEingabeVarNR.Value

Dim i As Integer

For i = 1 To zählerWeitere
MsgBox EingabeWeitereVar(i)
Next

End Sub


Jetzt wollte ich aus meinem Hauptprozess hierauf zugreifen. Habe das erst mal nur mit einer MsgBox probiert:


For i = 1 to 10
MsgBox EingabeWeitereVar(i)
Next


Das funkioniert nicht, da kommt immer ein Fehler....

Irgendeine Idee, wieso nicht??

Danke und Grüße

Reta
06.07.2015, 08:23
Hab den Fehler gefunden :) Hatte am Anfang meines Prozesses die Variable noch definiert gehabt :stupid:

Jetzt funktioniert alles! Danke!!