Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1120to1124
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
Variablen von UserForm an Modul übergeben
UserForm
Hallo,
wie lässt sich die Übergabe von Variablen von einem UserForm an ein Modul darstellen?
Ich habe ein UserForm mit 7 Felder, in denen Zahlen eingegeben werden. Mit dem Klickt auf den Button sollen die 7 Zahlen weiterverwendet werden in einem Modul. Mein aktueller Code für den Button sieht wie folgt aus:
Public Sub CommandButton1_Click()
liqsum = liq1.Value * 1 + liq2.Value * 1 + liq3.Value * 1 + liq4.Value * 1
altsum = alt1.Value * 1 + alt2.Value * 1 + alt3.Value * 1
Unload Me
End Sub

Sehr stark gekürzt sieht das Modul so aus:
Option Explicit
Dim tabellenblattauf, tabellenblatt, tabellenblattout, ... As String
Dim liq1, liq2, liq3, liq4, liqsum, alt1, alt2, alt3, altsum, ... As Integer
Sub aufbereiten()
tabellenblatt = "Input"
tabellenblattout = "Output"
tabellenblattauf = "Aufbereitet"
...
Load UserForm1
UserForm1.Show
...
liq = liq + liqsum
alt= alt + altsum
...
End Sub
Das Modul läuft richtig durch und zieht sich auch alle Daten nur nicht die Datem aus dem UserForm. Hat jemand eine Idee, wie ich da die Variablen richtig übergeben muss?
Vielen Dank und viele Grüße
Moe

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
mit Public deklarieren
07.12.2009 11:43:54
Matthias
Hallo
Deklariere gleich die Variablen als Public in einem Modul
 Option Explicit
Public liq1 As Integer
Public liq2 As Integer
Public liq3 As Integer
Public liq4 As Integer
Public liqsum As Integer

usw ...
Dann stehen diie Variablen allen Prozeduren zur Verfügung
Gruß Matthias
Bei leerem Feld automatisch 0 setzen
07.12.2009 12:07:33
Moritz
Hey Matthias,
so einfach kann es sein =). Vielen Dank es funktioniert gut.
Hast Du oder jemand anders vielleicht noch ein Idee, wie ich den UserForm Code erweitern muss, wenn in den einzelnen Feldern nichts eingetragen wird, dass dann dort automatisch eine 0 der Variable zugeordnet wird oder bereits 0 in dem Textfeld steht.
Viele Grüße
Moe
Anzeige
AW: Bei leerem Feld automatisch 0 setzen
07.12.2009 13:10:22
fcs
Hallo Moe,
du kannst im Userform 0 als Wert der Value-Eigenschaft der Textfelder vorgeben.
Ich führe bei nummerischen Werten in UF grundsätzlich eine Wertkonversion von Text nach Zahl durch.
If IsNumeric(TextboxXYZ.Value) then
dblVariable = CDbl(TextboxXYZ.Value)
' oder
Cells(Zeile,Spalte).Value = CDbl(TextboxXYZ.Value)
ElseIf TextboxXYZ.Value="" Then
dblVariable = 0
'oder
Cells(Zeile, Spalte).ClearContents
Else
MsgBox "Eingabe für XYZ muss nummerisch sein"
Exit Sub
End If
Gleiches gilt für Datumseingaben, die mit IsDate geprüft und CDate von Text in Datum konvertiert werden können.
Gruß
Franz
Anzeige
AW: Variablen von UserForm an Modul übergeben
07.12.2009 11:57:15
UserForm
Hallo Moe,
Im allgemeinen Modul muss du die Variablen, die vom Userform mit Daten gefüllt werden sollen als Public deklarieren.
Alternativ kannst du das Userform auch mit Me.Hide zunächst nur ausblenden und erst anch Auswertung der UF-Inhalte aus dem Speicher entfernen.

'Userform Button-Prozedur
Public Sub CommandButton1_Click()
Me.Hide
End Sub
'in der allgemeine Prozedur:
Load UserForm1
UserForm1.Show
With Userform1
liqsum = .liq1.Value * 1 + .liq2.Value * 1 + .liq3.Value * 1 + .liq4.Value * 1
altsum = .alt1.Value * 1 + .alt2.Value * 1 + .alt3.Value * 1
Unload Userform1
End With
Gruß
Franz
Anzeige

11 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige