Hallo liebe Community,
ich habe zwei kleine Probleme und hoffe, dass mir hier jemand weiterhelfen kann.
1. ich habe mehrere Userforms, die mit "Weiter-Buttons" untereinander verknüpft sind. In jeder Private Sub CommandButton1_Click wird eine Variable deklariert und ein Wert auf dieser gespeichert.
Beim Klick auf den Weiter Button in der letzten Userform sollen nun die entsprechenden Variablen miteinander multipliziert, dividiert etc werden. Allerdings kommt es hier zu dem Fehler, dass die Variablen ja in den Private-Subs deklariert sind und somit nicht "global" sind.
Wie stelle ich das am besten an? Ich poste im folgenden mal ein paar Auszüge aus dem Quelltext...
ERSTE USERFORM:
Private Sub CommandButton1_Click()
Dim kWele As Single
If TextBox1.Text = "" Then
MsgBox ("Bitte einen Wert für die elekrtische Leistung in [kW] eingeben!")
Else
kWele = TextBox1
Worksheets("Anlagen_Werte").Activate
Cells(5, 2) = kWele
leistungelektrisch.Hide
leistungthermisch.Show
End If
End Sub
In dieser Art kommen drei weitere und dann abschließend folgende:
Private Sub CommandButton1_Click()
Dim vlsza As Single
If TextBox1.Text = "" Then
MsgBox ("Bitte eine Volllaststundenzahl eingeben!")
Else
vlsza = TextBox1
Worksheets("Anlagen_Werte").Activate
Cells(9, 2) = vlsza
Cells(11, 2) = kWele * vlsza
stromprod = Cells(11, 2).Value
Cells(12, 2) = etaele / etathe
stromkz = Cells(12, 2).Value
Cells(13, 2) = stromprod / stromkz
waermeprod = Cells(13, 2).Value
Cells(14, 2) = waermeprod * 0.6
minwaerme = Cells(14, 2).Value
Cells(15, 2) = waermeprod * 0.35
ferment = Cells(15, 2).Value
Cells(16, 2) = minwaerme - ferment
restwaerme = Cells(16, 2).Value
Cells(17, 2) = (stromprod / etaele) / 9.94
methbedarf = Cells(17, 2).Value
volllast.Hide
subs.Show
End If
End Sub
Dabei bekomme ich verständlicherweise eine Fehlermeldung, da die letzte Private Sub ja nciht die Variablen aus den vorangegangene kennt. Wie definiere ich also am besten diese "globalen" variablen???
Ich hoffe, mir kann jemand helfen.
2. Frage: Gibt es anstelle des Befehls UserForm1.Hide einen Befehl, der sie nicht versteckt sondern schließt. In manchen Fällen kommt es nämlich zum Problem, dass wenn man oft zwischen den UserForms hin und her switcht und so die Fehlermeldung kommt UserForm.show kann ausgeführt werden, da sie schon geöffnet (aber eben versteckt) ist. Was tun???
Vielen vielen Dank für eure Hilfe im Voraus!
|