Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1288to1292
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
Inhaltsverzeichnis

nicht genügend stapelspeicher

nicht genügend stapelspeicher
08.12.2012 16:45:34
Steffi
Hallo,
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

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: nicht genügend stapelspeicher
08.12.2012 17:17:30
Daniel
Hi
1. würde ich da nicht für jeden Mitarbeitr und für jedes Jahr eine eigene Userform anlegen, sondern nur eine einzige Userform und dann je nach Auswahl von Jahr und Mitarbeiter die Ausgabezellen für die Steuerelemente entsprechend anpassen, so daß die Werte dann in die richtigen Zellen ausgelesen und geschrieben werden.
2. würde ich da nicht mit Checkboxen und Togglebuttons arbeiten, sondern mit Listboxen im Multiselect-Modus.
die kannst du dann einfach in einer Schleife abfragen.
Gruß Daniel

AW: nicht genügend stapelspeicher
08.12.2012 17:36:14
Daniel
solltest du bei den vielen Userforms bleiben wollen, aber zumindest mal den Punkt mit den Listboxen umsetzen, dann könnte das als Code in etwa so aussehen (nicht getestet)
1. alle UserForms in ein 2-dimensionales Array schreiben (Mitarbeiter / Jahr), damit man sie dann über dieses Array mit Indexnummern starten kann.

Dim myUF(0 To AnzahlMA, 0 To AnzahJahre) As Object
Dim aktUF As Object
Set myUF(0, 0) = Userform_MA1_Jahr2012
Set myUF(0, 1) = Userform_MA1_Jahr2013
Set myUF(0, 2) = Userform_MA1_Jahr2014
Set myUF(0, 3) = Userform_MA1_Jahr2015
Set myUF(1, 0) = Userform_MA2_Jahr2012
Set myUF(1, 1) = Userform_MA2_Jahr2013
Set myUF(1, 2) = Userform_MA2_Jahr2014
Set myUF(5, 8) = Userform_MA6_Jahr2020
im zweiten schritt durchläuft man dann die Listboxen für Mitarbeiter und Jahr, prüft welche ausgewählt wurden und ruft dann die jeweilige Userform auf:
Dim Ma As Long, Jhr As Long
For Ma = 0 To ListboxMA.ListCount - 1
If ListboxMA.Selected(Ma) Then
For Jhr = 0 To ListboxJahr.ListCount - 1
If ListboxJahr.Selected(Jhr) Then
If Not aktUF Is Nothing Then Unload aktUF
Set aktUF = myUF(Ma, Jhr)
aktUF.Show
End If
Next Jhr
End If
Next Ma
If Not aktUF Is Nothing Then Unload aktUF
Gruß Daniel

Anzeige
AW: nicht genügend stapelspeicher
08.12.2012 18:36:22
Steffi
Hi Daniel,
vielen Dank für die schnelle Rückmeldung!!!
Also ich werde wahrscheinlich bei den Userformen bleiben müssen, weil ich mir auch immer die Werte aus den Textboxen der vorherigen Userform (z.b. MA1 2012) in die aktuelle Userform (z.b. MA1 2013) kopieren möchte. Wahrscheinlich würde auch das iwie funktionieren aber dafür sind meine Kenntnisse mehr als limitiert...
Zu Deinem Vorschlag mit den Listboxen:
Muss ich diesen Code dann jeweils in den Userformen bei dem CommandButton "Nächstes" reinschreiben?
Ich kenn mich leider nicht so gut aus, sorry.
Liebe Grüße
Steffi

Anzeige
AW: nicht genügend stapelspeicher
08.12.2012 18:44:02
Daniel
und ich kenn mich in deinem Projekt nicht gut genug aus, um dir da konkret Antwort zu geben.
könntest ´du mal eine abgespeckte Beispieldatei erstellen (bswp mit 3 Ma für 3 Jahre = 3 Userforms) und hier hochladen ?
Gruß Daniel

AW: nicht genügend stapelspeicher
09.12.2012 13:13:33
schauan
Hallo Steffi,
userforms schließt Du nicht mit Hide, sondern mit Unload . Eventuell benötigte Daten kann man z.B. in globalen Variablen ablegen. Definiere dazu z.B. in einem Modul
Public strErsterText as String
und übernehme den Wert einer Textbox vor dem Schließen des zugehörigen userforms z.B. mit
strErstertext = userform1.textbox1.text
Alternativ kannst Du die Daten auch vor dem Schließen an ein zweites userform übergeben.
Im Prinzip z.B. bei einer Eingabe über eine Variable auf einem UF, direkt würde natürlich auch gehen:
varJahr=userform1.textbox1.text
userform1.textbox1.text=sheets(varJahr).range("A1")
oder
userform1.textbox1.text=sheets(userform1.textbox1.text).range("A1")
oder direkt an ein zweites
userform2.textbox1.text=sheets(userform1.textbox1.text).range("A1")
unload userform1
 Hoffe, geholfen zu haben. Grüße, André aus G in T  (xls 97-2013)

Anzeige
AW: nicht genügend stapelspeicher
09.12.2012 21:54:50
Steffi
Hallo Daniel,
ich habe jetzt einmal die Datei nachgebildet.
Ich habe mal 4 Userformen erstellt
- MA1 2012
- MA1 2013
- MA2 2012
- MA2 2013
In diesen ist jeweils beim Next_Button_Click die komplette If-schleife so wie sie in meiner Original-Datei ist (also mit allen möglichen MA-Jahr-Kombinationen)
Daher funktionieren die Next Button auf den einzelnen Userformen nicht.
Du kannst aber die 4 oben genannten Kombinationen anwählen und dir dann diese Userform ansehen.
Die von mir eingestellten Listboxen funktionieren noch nicht ich hab sie nur schon mal vorbereitet.
Schon mal tausend Dank das du dir meinen Problem annimmst!
Natürlich auch Dir André!
https://www.herber.de/bbs/user/82953.xlsm
Grüßle
Steffi

Anzeige
AW: nicht genügend stapelspeicher
09.12.2012 22:09:04
Steffi
Da war ich zu schnell...
Die Datei ist es:
https://www.herber.de/bbs/user/82954.xlsm
Hatte ein paar Parameter falsch deklariert.
Grüßle
Steffi

AW: nicht genügend stapelspeicher
12.12.2012 22:19:47
Daniel
Hi
da kann ich mich nur wiederholen:
für jeden Mitarbeiter und Jahr eine eigene Userform zu erstellen ist Unsinn.
Eine Eingabeuserform reicht, du musst doch nur die ControlSource der Textboxen entsprechend dem gewählten Jahr und Mitarbeiter einstellen.
Gruß Daniel

AW: nicht genügend stapelspeicher
13.12.2012 10:29:08
Steffi
Hi Daniel,
da hast du natürlich Recht, dass das Unsinn ist!
Nur leider habe ich keine Ahnung wie ich das Problem lösen kann, dass das Programm checkt, wenn ich auf den "weiter" Button klicke, dass er mir das nächste Jahr aufruft bzw. wenn ich für MA1 nur 2 Jahre bearbeiten möchte und dann zu MA2 springen.
Habe es in der Click-Methode des "weiter" Button wie folgt versucht:

If i = 1 Then
MsgBox ("Nicht alle felder gefüllt." & Chr(13) & "Feld nicht notwendig, dann 0 einfügen! _
")
ElseIf Input_form_.MA1 = True And Input_form_.Year2013 = True And Sheets("Mitarbeiter"). _
Range("L8").Value = "" Then
Inputfield_MA1_2012.InputfieldMA.Value = Sheets("Mitarbeiter").Range("C7").Value
Inputfield_MA1_2012.InputfieldYear.Value = "2013"
.   'hier folgen noch die Jahre 2014 bis 2030 für MA1
ElseIf Input_form_.MA2 = True And Input_form_.Year2012 = True And Sheets("Mitarbeiter"). _
Range("F24").Value = "" Then
Inputfield_MA1_2012.InputfieldMA.Value = Sheets("Mitarbeiter").Range("C23").Value
Inputfield_MA1_2012.InputfieldYear.Value = "2012"
ElseIf Input_form_.MA2 = True And Input_form_.Year2013 = True And Sheets("Mitarbeiter"). _
Range("L24").Value = "" Then
Inputfield_MA1_2012.InputfieldMA.Value = Sheets("Mitarbeiter").Range("C23").Value
Inputfield_MA1_2012.InputfieldYear.Value = "2013"
End If
Also er schaut ob in den entsprechenden Parameterabschnitt der Kombinationsmöglichkeiten der erste Parameter leer ist. Wenn er noch leer ist ruft er diesen als nächstes auf.
Wenn ich nun aber diesen MA in dem entsprechenden Jahr bearbeiten möchte, d.h. es steht schon ein Wert in dem Parameter dann kann ich ihn nicht mehr aufrufen.
Das mit dem ControlSource habe ich wie folgt versucht.
Ich schaue was in den Textboxen oben links drin steht "MA:" + "Year:" und anhand dessen gebe ich den Zellbezug zu meiner Tabelle in einer If-Anweisung.
Dies funktioniert aber leider auch nicht :(... :
Private Sub UserForm_Initialize()
InitializeTextBoxes
If Inputfield_MA1_2012.InputfieldMA.Value = Sheets("Mitarbeiter").Range("C7").Value And  _
Inputfield_MA1_2012.InputfieldYear.Value = "2012" Then
TextBox396.ControlSource = "Mitarbeiter!F8"   'Verknüpfung Textboxen mit Zellen
TextBox397.ControlSource = "Mitarbeiter!F9"
TextBox398.ControlSource = "Mitarbeiter!F10"
TextBox399.ControlSource = "Mitarbeiter!F11"
TextBox400.ControlSource = "Mitarbeiter!F12"
TextBox401.ControlSource = "Mitarbeiter!F13"
TextBox402.ControlSource = "Mitarbeiter!F15"
TextBox403.ControlSource = "Mitarbeiter!F16"
TextBox404.ControlSource = "Mitarbeiter!F17"
TextBox405.ControlSource = "Mitarbeiter!F18"
TextBox406.ControlSource = "Mitarbeiter!G8"
TextBox407.ControlSource = "Mitarbeiter!G9"
TextBox408.ControlSource = "Mitarbeiter!G10"
TextBox409.ControlSource = "Mitarbeiter!G11"
TextBox410.ControlSource = "Mitarbeiter!G12"
TextBox411.ControlSource = "Mitarbeiter!G13"
TextBox412.ControlSource = "Mitarbeiter!G15"
TextBox413.ControlSource = "Mitarbeiter!G16"
TextBox414.ControlSource = "Mitarbeiter!G17"
TextBox415.ControlSource = "Mitarbeiter!G18"
TextBox416.ControlSource = "Mitarbeiter!I8"
TextBox417.ControlSource = "Mitarbeiter!I9"
TextBox418.ControlSource = "Mitarbeiter!I10"
TextBox419.ControlSource = "Mitarbeiter!I11"
TextBox420.ControlSource = "Mitarbeiter!I12"
TextBox421.ControlSource = "Mitarbeiter!I13"
TextBox422.ControlSource = "Mitarbeiter!I15"
TextBox423.ControlSource = "Mitarbeiter!I16"
TextBox424.ControlSource = "Mitarbeiter!I17"
TextBox425.ControlSource = "Mitarbeiter!I18"
TextBox426.ControlSource = "Mitarbeiter!J8"
TextBox427.ControlSource = "Mitarbeiter!J9"
TextBox428.ControlSource = "Mitarbeiter!J10"
TextBox429.ControlSource = "Mitarbeiter!J11"
TextBox430.ControlSource = "Mitarbeiter!J12"
TextBox431.ControlSource = "Mitarbeiter!J13"
TextBox432.ControlSource = "Mitarbeiter!J15"
TextBox433.ControlSource = "Mitarbeiter!J16"
TextBox434.ControlSource = "Mitarbeiter!J17"
TextBox435.ControlSource = "Mitarbeiter!J18"
ElseIf Inputfield_MA1_2012.InputfieldMA.Value = Sheets("Mitarbeiter").Range("C7").Value And  _
Inputfield_MA1_2012.InputfieldYear.Value = "2013" Then
TextBox396.ControlSource = "Mitarbeiter!L8"   'Verknüpfung Textboxen mit Zellen
TextBox397.ControlSource = "Mitarbeiter!L9"
TextBox398.ControlSource = "Mitarbeiter!L10"
TextBox399.ControlSource = "Mitarbeiter!L11"
TextBox400.ControlSource = "Mitarbeiter!L12"
TextBox401.ControlSource = "Mitarbeiter!L13"
TextBox402.ControlSource = "Mitarbeiter!L15"
TextBox403.ControlSource = "Mitarbeiter!L16"
TextBox404.ControlSource = "Mitarbeiter!L17"
TextBox405.ControlSource = "Mitarbeiter!L18"
TextBox406.ControlSource = "Mitarbeiter!M8"
TextBox407.ControlSource = "Mitarbeiter!M9"
TextBox408.ControlSource = "Mitarbeiter!M10"
TextBox409.ControlSource = "Mitarbeiter!M11"
TextBox410.ControlSource = "Mitarbeiter!M12"
TextBox411.ControlSource = "Mitarbeiter!M13"
TextBox412.ControlSource = "Mitarbeiter!M15"
TextBox413.ControlSource = "Mitarbeiter!M16"
TextBox414.ControlSource = "Mitarbeiter!M17"
TextBox415.ControlSource = "Mitarbeiter!M18"
TextBox416.ControlSource = "Mitarbeiter!O8"
TextBox417.ControlSource = "Mitarbeiter!O9"
TextBox418.ControlSource = "Mitarbeiter!O10"
TextBox419.ControlSource = "Mitarbeiter!O11"
TextBox420.ControlSource = "Mitarbeiter!O12"
TextBox421.ControlSource = "Mitarbeiter!O13"
TextBox422.ControlSource = "Mitarbeiter!O15"
TextBox423.ControlSource = "Mitarbeiter!O16"
TextBox424.ControlSource = "Mitarbeiter!O17"
TextBox425.ControlSource = "Mitarbeiter!O18"
TextBox426.ControlSource = "Mitarbeiter!P8"
TextBox427.ControlSource = "Mitarbeiter!P9"
TextBox428.ControlSource = "Mitarbeiter!P10"
TextBox429.ControlSource = "Mitarbeiter!P11"
TextBox430.ControlSource = "Mitarbeiter!P12"
TextBox431.ControlSource = "Mitarbeiter!P13"
TextBox432.ControlSource = "Mitarbeiter!P15"
TextBox433.ControlSource = "Mitarbeiter!P16"
TextBox434.ControlSource = "Mitarbeiter!P17"
TextBox435.ControlSource = "Mitarbeiter!P18"
ElseIf Inputfield_MA1_2012.InputfieldMA.Value = Sheets("Mitarbeiter").Range("C23").Value And  _
Inputfield_MA1_2012.InputfieldYear.Value = "2012" Then
TextBox396.ControlSource = "Mitarbeiter!F24"   'Verknüpfung Textboxen mit Zellen
TextBox397.ControlSource = "Mitarbeiter!F25"
TextBox398.ControlSource = "Mitarbeiter!F26"
TextBox399.ControlSource = "Mitarbeiter!F27"
TextBox400.ControlSource = "Mitarbeiter!F28"
TextBox401.ControlSource = "Mitarbeiter!F29"
TextBox402.ControlSource = "Mitarbeiter!F31"
TextBox403.ControlSource = "Mitarbeiter!F32"
TextBox404.ControlSource = "Mitarbeiter!F33"
TextBox405.ControlSource = "Mitarbeiter!F34"
TextBox406.ControlSource = "Mitarbeiter!G24"
TextBox407.ControlSource = "Mitarbeiter!G25"
TextBox408.ControlSource = "Mitarbeiter!G26"
TextBox409.ControlSource = "Mitarbeiter!G27"
TextBox410.ControlSource = "Mitarbeiter!G28"
TextBox411.ControlSource = "Mitarbeiter!G29"
TextBox412.ControlSource = "Mitarbeiter!G31"
TextBox413.ControlSource = "Mitarbeiter!G32"
TextBox414.ControlSource = "Mitarbeiter!G33"
TextBox415.ControlSource = "Mitarbeiter!G34"
TextBox416.ControlSource = "Mitarbeiter!I24"
TextBox417.ControlSource = "Mitarbeiter!I25"
TextBox418.ControlSource = "Mitarbeiter!I26"
TextBox419.ControlSource = "Mitarbeiter!I27"
TextBox420.ControlSource = "Mitarbeiter!I28"
TextBox421.ControlSource = "Mitarbeiter!I29"
TextBox422.ControlSource = "Mitarbeiter!I31"
TextBox423.ControlSource = "Mitarbeiter!I32"
TextBox424.ControlSource = "Mitarbeiter!I33"
TextBox425.ControlSource = "Mitarbeiter!I34"
TextBox426.ControlSource = "Mitarbeiter!J24"
TextBox427.ControlSource = "Mitarbeiter!J25"
TextBox428.ControlSource = "Mitarbeiter!J26"
TextBox429.ControlSource = "Mitarbeiter!J27"
TextBox430.ControlSource = "Mitarbeiter!J28"
TextBox431.ControlSource = "Mitarbeiter!J29"
TextBox432.ControlSource = "Mitarbeiter!J31"
TextBox433.ControlSource = "Mitarbeiter!J32"
TextBox434.ControlSource = "Mitarbeiter!J33"
TextBox435.ControlSource = "Mitarbeiter!J34"
ElseIf Inputfield_MA1_2012.InputfieldMA.Value = Sheets("Mitarbeiter").Range("C23").Value And  _
Inputfield_MA1_2012.InputfieldYear.Value = "2013" Then
TextBox396.ControlSource = "Mitarbeiter!L24"   'Verknüpfung Textboxen mit Zellen
TextBox397.ControlSource = "Mitarbeiter!L25"
TextBox398.ControlSource = "Mitarbeiter!L26"
TextBox399.ControlSource = "Mitarbeiter!L27"
TextBox400.ControlSource = "Mitarbeiter!L28"
TextBox401.ControlSource = "Mitarbeiter!L29"
TextBox402.ControlSource = "Mitarbeiter!L31"
TextBox403.ControlSource = "Mitarbeiter!L32"
TextBox404.ControlSource = "Mitarbeiter!L33"
TextBox405.ControlSource = "Mitarbeiter!L34"
TextBox406.ControlSource = "Mitarbeiter!M24"
TextBox407.ControlSource = "Mitarbeiter!M25"
TextBox408.ControlSource = "Mitarbeiter!M26"
TextBox409.ControlSource = "Mitarbeiter!M27"
TextBox410.ControlSource = "Mitarbeiter!M28"
TextBox411.ControlSource = "Mitarbeiter!M29"
TextBox412.ControlSource = "Mitarbeiter!M31"
TextBox413.ControlSource = "Mitarbeiter!M32"
TextBox414.ControlSource = "Mitarbeiter!M33"
TextBox415.ControlSource = "Mitarbeiter!M34"
TextBox416.ControlSource = "Mitarbeiter!O24"
TextBox417.ControlSource = "Mitarbeiter!O25"
TextBox418.ControlSource = "Mitarbeiter!O26"
TextBox419.ControlSource = "Mitarbeiter!O27"
TextBox420.ControlSource = "Mitarbeiter!O28"
TextBox421.ControlSource = "Mitarbeiter!O29"
TextBox422.ControlSource = "Mitarbeiter!O31"
TextBox423.ControlSource = "Mitarbeiter!O32"
TextBox424.ControlSource = "Mitarbeiter!O33"
TextBox425.ControlSource = "Mitarbeiter!O34"
TextBox426.ControlSource = "Mitarbeiter!P24"
TextBox427.ControlSource = "Mitarbeiter!P25"
TextBox428.ControlSource = "Mitarbeiter!P26"
TextBox429.ControlSource = "Mitarbeiter!P27"
TextBox430.ControlSource = "Mitarbeiter!P28"
TextBox431.ControlSource = "Mitarbeiter!P29"
TextBox432.ControlSource = "Mitarbeiter!P31"
TextBox433.ControlSource = "Mitarbeiter!P32"
TextBox434.ControlSource = "Mitarbeiter!P33"
TextBox435.ControlSource = "Mitarbeiter!P34"
End If
End Sub
Auch wüsste ich nicht wie ich es ermöglichen kann mit einer Userform die Werte aus den Textboxen in das nächste Jahr zu kopieren. Also das auf Knopfdruck die Werte vom Vorjahr im aktuellen Jahr stehen.
Sorry, falls ich dich damit schon nerve.
Ich hoffe du hast noch etwas Geduld für mich!
Grüßle
Steffi

Anzeige
AW: nicht genügend stapelspeicher
13.12.2012 13:00:04
Daniel
Hi
mal ein Beispiel, wie ich mir das vorstellen könnte.
für weitere Mitarbeiter oder Jahre reicht es, wenn du einfach die Tabelle änderst
lediglich wenn neue Werte hinzukommen, musst du in die Programmierung eingreifen (das sollte aber der Ausnahmefall sein)

Die Datei https://www.herber.de/bbs/user/82994.xls wurde aus Datenschutzgründen gelöscht


Versuche, das erstmal zu verstehen (auch mit Hilfe der Excelhilfe)
wenn du weitere Fragen hast, wäre u.U. ein neuer Tread hilfreich, da dieser immer weiter nach untenrutscht und ich dann auch nicht mehr unbedingt kontrolliere, ob da neue Fragen drinstehen.
Gruß Daniel

Anzeige
AW:@ Daniel nicht genügend stapelspeicher
13.12.2012 21:09:33
Steffi
Hi Daniel,
ich hoffe du liest ein letztes Mal diesen Thread!!!
Ich habe deine Datei und Code halbwegs verstanden. Die Funktionen mit so kurzen Codes sind beeindruckend!!!
Echt klasse!!!
Nur ist noch ein Problem gegeben!
Und zwar soll der Zellbezug der Textboxen nicht nur auf das Jahr und den MA fixiert sein, sondern auch noch auf das Quartal in dem entsprechenden Jahr.
Ich denke man müsste da in dem Code "EingabeZellen_verknüpfen" etwas ändern aber ich weiß leider nicht wie :(...
Ich habe die Datei soweit angepasst und die Textboxen eingefügt.
Achso ich habe das Register ausgeblendet und dafür einen Button eingefügt der überprüft ob Einträge in den zwei Listboxen getätigt wurden. Wenn nicht dann kommt eine MsgBox.
Ein letztes noch. Wenn ich im Eingabefeld bin komme ich mit "zurück" nicht mehr auf das Auswahlfeld ist das noch möglich?!
Also falls ich einen Eintrag in der Listbox vergessen habe auszuwählen, dass man dann mit zurück noch auf das Feld kommt, da die Reiter ausgeblendet sein sollten.
https://www.herber.de/bbs/user/82996.xls
Ich hoffe du kannst dir nochmal die Zeit nehmen!
Wäre total lieb!!!
Liebe Grüße
Steffi

Anzeige
AW: AW:@ Daniel nicht genügend stapelspeicher
14.12.2012 02:31:13
Daniel
Hi
um auch noch die Quartale auszufüllen, musst du für den weitern Textboxen auch noch den Spalten-Offset entsprechend festlegen, dh für die Texbox für den Wert2 im Quartal 3 wäre die Zeile:
TB_xxx.ControlSource = Intersect(rngMA, rngJahr).Offset(1, 3).Address

um wieder zur Auswahlmaske zurückzukommen, musst du den .Value-Wert der Multipage wieder auf 0 setzen (0 ist die erste Seite der Multipage). Dafür würde ich einen eigenen Button verwenden.
Gruß Daniel

AW:@ Daniel; es läuft :)
14.12.2012 20:11:56
Steffi
Hi Daniel,
TAUSEND DANK!!!
Nun funktioniert alles wie ich es möchte!
Du bist großartig!!!
Nochmals rießiges Dankeschön!
Grüßle
Steffi
Anzeige

53 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige