Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1684to1688
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Globale Variablen in Userform und Modul
29.03.2019 13:27:27
Johann
Hallo,
mich interessiert, ob es möglich ist eine globale Variable in einer Userform zu definieren, dessen Wert dann in einem Modul verwendet werden kann.
Hier ein Beispiel für die Userform:
Public TextOutput As String
Private Sub Label1_Click()
End Sub
Private Sub Text1_Change()
End Sub
Private Sub UserForm_Click()
End Sub
Private Sub CommandButton2_Click()
ActiveSheet.Range("A1:O9999").ClearContents
' ActiveSheet.Range("B2").Value = Einlesen.Text1
TextOutput = Einlesen.Text1
ActiveSheet.Range("C2").Value = TextOutput
End Sub
Private Sub CommandButton1_Click()
Unload Einlesen
Call output(TextOutput)
End Sub

Und hier für das Modul
Sub output(TextOutput)
TextShow = TextOutput
' TextShow = ActiveSheet.Range("B2").Value
ActiveSheet.Range("D2").Value = TextShow
End Sub
So wie es hier steht funktioniert es nicht. Alternativ kann der Wert der Variablen ja auch in eine Zelle geschrieben und dann im Module wieder eingelesen werden.
Aber der direkte Weg wäre der elegantere.
Für eine Lösung wäre ich dankbar.
Viele Grüße
Johann Herlyn

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Globale Variablen in Userform und Modul
29.03.2019 13:45:23
Daniel
Hallo Johann,
du brauchst eine globale Variable nicht als Parameter in die Funktion nehmen.
Sub Output() reicht.
Gruß
Daniel
AW: Globale Variablen in Userform und Modul
29.03.2019 13:52:16
Johann
Hallo Daniel,
hatte ich auch schon probiert, also ohne Public ... und nur call output() und sub output().
Funktionierte leider auch nicht.
Viele Grüße
Johann
AW: Globale Variablen in Userform und Modul
29.03.2019 13:57:23
Daniel

Public TextOutput As String
Sub Einlesen()
TextOutput = Cells(1, 1)
End Sub
Sub ausgeben()
Cells(24, 1) = TextOutput
End Sub
Kannst du ohne Probleme nacheinander ausführen, was im Prinzip etwas vereinfacht dasselbe ist wie bei dir.
Anzeige
AW: Globale Variablen in Userform und Modul
29.03.2019 14:20:02
Johann
Ja, wenn die globale Variable unter Module in verschiedenen Subs stehen, funktioniert es.
Aber anscheinend nicht, wenn sie unter Formulare und Module definiert sein und aufgerufen werden soll.
Viele Grüße
Johann
AW: Globale Variablen in Userform und Modul
29.03.2019 14:23:55
Daniel
Wenn du die Public Variable im Modul deklarierst, kannst du sie auch in den Tabellencodes nutzen, allerdings nur in derselben Arbeitsmappe.
Berücksichtige auch noch, was Hansueli geschrieben hat, sonst bricht er ohnehin immer ab.
Die Reihenfolge im Code ist falsch...
29.03.2019 14:09:53
EtoPHG
Hallo Johann,
  Unload Einlesen          ' Dies zerstört die Userform-Klasse
Call output(TextOutput)  ' Also läuft der Code NIE hier durch!
Bitte die Reihenfolge dieser Codezeilen vertauschen!
Gruess Hansueli
Anzeige
AW: Die Reihenfolge im Code ist falsch...
29.03.2019 14:24:06
Johann
Hilft leider auch nicht.
Im Einzelschritt-Debuggen ist auch zu sehen, dass nach Schließen der Userform zum Sub gesprungen wird.
Viele Grüße
Johann
AW: Die Reihenfolge im Code ist falsch...
29.03.2019 15:02:54
EtoPHG
Hallo Johann,
Du hast es offensichtlich nicht ausprobiert!
Das Unload zerstört die Userform-Klasse.
Das hat zur Folge das deine TextOutput Variable wieder den Initial-Wert (vbNullString) hat.
Projektweite Variablen müssen als Public in einem Standardmodul definiert werden und in keiner anderen Codeklasse!
Also definiere sie dort, dann kannst du sie auch in Codes deiner Userform gebrauchen.
Gruess Hansueli
Gruess Hansueli
Anzeige

21 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige