nicht genügend stapelspeicher
08.12.2012 16:45:34
Steffi
ich habe ein Problem mit dem Stapelspeicher und weiß auch woran es liegt aber nicht wie ich es lösen kann.
Ich habe eine Userform auf der ich zunächst die Mitarbeiter ("MA") mit Checkboxen auswähle und die Jahre mit ToggleButton.
Es geht dabei um eine Excel-Datei in der ich Daten einpflegen muss. Die entsprechenden Wahlmöglichkeiten (sind jeweils einzelne Userformen --> d.h. ich habe viele :) ) werden durch einen Button "Nächstes" aufgerufen. Das ich für jede Kombi eine neue Userform benötige liegt daran das die Eingaben in der Userform (über Textboxen) mit den entsprechenden Zellen in der Excel-Tabelle verknüpft sind. Ich brauche die Userformen, da die unüberschaubare Datei dadurch für mich übersichtlich wird bzw. ich die Daten besser einpflegen kann und auswerten lassen.
Das PROBLEM:
Ich will immer zuerst für jeden MA die Daten für jedes Jahr eingeben und dann mit dem nächsten MA weitermachen.
Beispiel:
Checkbox MA1 und MA3 sind angewählt + Jahre 2012, 2013, 2014
Durch Klick auf nächstes soll in der folgenden Reihenfolge die Userformen angezeigt werden und die offene jeweils wieder ausgeblendet:
1. "MA1 , Jahr 2012" (auf dieser Userform befindet sich dann auch wieder ein "Nächstes" Button
2. "MA1, 2013"
3. "MA1, 2014"
4. "MA3, 2012"
5. "MA3, 2013"
6. "MA3, 2014"
Wenn jetzt aber in meiner IF-Verschachtelung "Checkbox_MA1 = True und ToggleButton_Jahr2013 = True" dann wird die aktuelle Userform zwar ausgeblendet (und die nächste angezeigt) ABER verbleibt im Stapelspeicher weil Sie ja nicht bis zum "End Sub" durchläuft...
Private Sub CommandButton1_Click()
If Checkbox_MA1 = True And ToggleButton_Jahr2013 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA1_Jahr2013.Show
ElseIf Checkbox_MA1 = True And ToggleButton_Jahr2014 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA1_Jahr2014.Show
ElseIf Checkbox_MA1 = True And ToggleButton_Jahr2015 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA1_Jahr2015.Show
ElseIf Checkbox_MA1 = True And ToggleButton_Jahr2016 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA1_Jahr2016.Show
ElseIf Checkbox_MA1 = True And ToggleButton_Jahr2017 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA1_Jahr2017.Show
ElseIf Checkbox_MA1 = True And ToggleButton_Jahr2018 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA1_Jahr2018.Show
ElseIf Checkbox_MA1 = True And ToggleButton_Jahr2019 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA1_Jahr2019.Show
ElseIf Checkbox_MA1 = True And ToggleButton_Jahr2020 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA1_Jahr2020.Show
ElseIf Checkbox_MA2 = True And ToggleButton_Jahr2012 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA2_Jahr2012.Show
ElseIf Checkbox_MA2 = True And ToggleButton_Jahr2013 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA2_Jahr2013.Show
ElseIf Checkbox_MA2 = True And ToggleButton_Jahr2014 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA2_Jahr2014.Show
ElseIf Checkbox_MA2 = True And ToggleButton_Jahr2015 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA2_Jahr2015.Show
ElseIf Checkbox_MA2 = True And ToggleButton_Jahr2016 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA2_Jahr2016.Show
ElseIf Checkbox_MA2 = True And ToggleButton_Jahr2017 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA2_Jahr2017.Show
ElseIf Checkbox_MA2 = True And ToggleButton_Jahr2018 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA2_Jahr2018.Show
ElseIf Checkbox_MA2 = True And ToggleButton_Jahr2019 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA2_Jahr2019.Show
ElseIf Checkbox_MA2 = True And ToggleButton_Jahr2020 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA2_Jahr2020.Show
ElseIf Checkbox_MA3 = True And ToggleButton_Jahr2012 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA3_Jahr2012.Show
ElseIf Checkbox_MA3 = True And ToggleButton_Jahr2013 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA3_Jahr2013.Show
ElseIf Checkbox_MA3 = True And ToggleButton_Jahr2014 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA3_Jahr2014.Show
ElseIf Checkbox_MA3 = True And ToggleButton_Jahr2015 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA3_Jahr2015.Show
ElseIf Checkbox_MA3 = True And ToggleButton_Jahr2016 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA3_Jahr2016.Show
ElseIf Checkbox_MA3 = True And ToggleButton_Jahr2017 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA3_Jahr2017.Show
ElseIf Checkbox_MA3 = True And ToggleButton_Jahr2018 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA3_Jahr2018.Show
ElseIf Checkbox_MA3 = True And ToggleButton_Jahr2019 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA3_Jahr2019.Show
ElseIf Checkbox_MA3 = True And ToggleButton_Jahr2020 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA3_Jahr2020.Show
ElseIf Checkbox_MA4 = True And ToggleButton_Jahr2012 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA4_Jahr2012.Show
ElseIf Checkbox_MA4 = True And ToggleButton_Jahr2013 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA4_Jahr2013.Show
ElseIf Checkbox_MA4 = True And ToggleButton_Jahr2014 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA4_Jahr2014.Show
ElseIf Checkbox_MA4 = True And ToggleButton_Jahr2015 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA4_Jahr2015.Show
ElseIf Checkbox_MA4 = True And ToggleButton_Jahr2016 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA4_Jahr2016.Show
ElseIf Checkbox_MA4 = True And ToggleButton_Jahr2017 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA4_Jahr2017.Show
ElseIf Checkbox_MA4 = True And ToggleButton_Jahr2018 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA4_Jahr2018.Show
ElseIf Checkbox_MA4 = True And ToggleButton_Jahr2019 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA4_Jahr2019.Show
ElseIf Checkbox_MA4 = True And ToggleButton_Jahr2020 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA4_Jahr2020.Show
ElseIf Checkbox_MA5 = True And ToggleButton_Jahr2012 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA5_Jahr2012.Show
ElseIf Checkbox_MA5 = True And ToggleButton_Jahr2013 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA5_Jahr2013.Show
ElseIf Checkbox_MA5 = True And ToggleButton_Jahr2014 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA5_Jahr2014.Show
ElseIf Checkbox_MA5 = True And ToggleButton_Jahr2015 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA5_Jahr2015.Show
ElseIf Checkbox_MA5 = True And ToggleButton_Jahr2016 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA5_Jahr2016.Show
ElseIf Checkbox_MA5 = True And ToggleButton_Jahr2017 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA5_Jahr2017.Show
ElseIf Checkbox_MA5 = True And ToggleButton_Jahr2018 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA5_Jahr2018.Show
ElseIf Checkbox_MA5 = True And ToggleButton_Jahr2019 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA5_Jahr2019.Show
ElseIf Checkbox_MA5 = True And ToggleButton_Jahr2020 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA5_Jahr2020.Show
ElseIf Checkbox_MA6 = True And ToggleButton_Jahr2012 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA6_Jahr2012.Show
ElseIf Checkbox_MA6 = True And ToggleButton_Jahr2013 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA6_Jahr2013.Show
ElseIf Checkbox_MA6 = True And ToggleButton_Jahr2014 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA6_Jahr2014.Show
ElseIf Checkbox_MA6 = True And ToggleButton_Jahr2015 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA6_Jahr2015.Show
ElseIf Checkbox_MA6 = True And ToggleButton_Jahr2016 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA6_Jahr2016.Show
ElseIf Checkbox_MA6 = True And ToggleButton_Jahr2017 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA6_Jahr2017.Show
ElseIf Checkbox_MA6 = True And ToggleButton_Jahr2018 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA6_Jahr2018.Show
ElseIf Checkbox_MA6 = True And ToggleButton_Jahr2019 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA6_Jahr2019.Show
ElseIf Checkbox_MA6 = True And ToggleButton_Jahr2020 = True Then
Userform_MA1_Jahr2012.Hide
Userform_MA6_Jahr2020.Show
End If
End Sub
Ich hoffe jmd. weiß eine Lösung für mein Problem!Habe es schon versucht auf andere Prozeduren zu verweisen:
...
ElseIf Checkbox_MA1 = True And ToggleButton_Jahr2013 = True Then
Call close_userform
Call open_userform
elseif ...
Private Sub close_userform()
Userform_MA1_Jahr2012.Hide
End Sub
Private Sub open_userform()
Userform_MA1_Jahr2013.Show
End Sub
Das bringt aber auch nichts weil ich ja dann trotzdem nicht bis zum "End Sub" komme und ich dann ja ewig viele solcher close_userform bzw. open_userform brauchen würde...Vielen DANK schon einmal für eure Rückmeldungen!
Liebe Grüße
Steffi