01.11.2014, 17:04
(01.11.2014, 16:37)Malte1983 schrieb: [ -> ]Ich glaube deine Lösung ist im Endeffekt die saubere. Nur da übernimmt er immer nur den Montag meiner ausgewählten Kalenderwoche, ich werde sie wahrscheinlich dann noch um Funktion erweitern müssen. bzw. mir den Code genau ansehen um zu verstehen.
ich kann und sollte den Code wohl noch erläutern, erst mal so weit:
Der Name des durch Listbox1 ausgewählten Mitarbeiters wird weiter oben der Variable sMitarbeiter und die in Listbox2 ausgewählte KW wird der Variable lngKW zugewiesen. Durch Aufruf Sheets... und Cells... mit den Variablen wird der Wert der Text- oder Comboboxen direkt in die entsprechenden Zellen geschrieben, ohne sie anspringen zu müssen.
Klar übernimmt er nur den Montag, ich dachte, Du kannst das selbst erweitern, der Codeteil für Montag ist ja im CommandButton1_Click drin:
Code:
Private Sub CommandButton1_Click()
Sheets(sMitarbeiter).Cells(lngKw, 4) = TextBox2.Value ' oder ComboBox1.Text
Sheets(sMitarbeiter).Cells(lngKw, 5) = TextBox9.Value ' oder ...
Sheets(sMitarbeiter).Cells(lngKw, 6) = TextBox16.Value
' Dienstag dann so:
Sheets(sMitarbeiter).Cells(lngKw+1, 4) = TextBox3.Value ' oder ComboBox1.Text
Sheets(sMitarbeiter).Cells(lngKw+1, 5) = TextBox10.Value ' oder ...
Sheets(sMitarbeiter).Cells(lngKw+1, 6) = TextBox17.Value
' Mittwoch bis Sonntag analog
Sheets(sMitarbeiter).Cells(lngKw+2, 4) = TextBox4.Value ' oder ComboBox1.Text
Sheets(sMitarbeiter).Cells(lngKw+2, 5) = TextBox12.Value ' oder ...
Sheets(sMitarbeiter).Cells(lngKw+2, 6) = TextBox18.Value
' ...
End Sub
Was anderes:
Du hast in jeder Tabelle den Button für die Userform drin und schreibst dann in das aktuelle Blatt. Zu was benötigst Du dann die Listbox1?
Drum hatte ich den Button nur ein Mal im Start-Blatt, da kannst Du dann schneller für mehrere Mitarbeiter alle Daten eingeben, ohne dauernd die Blätter zu wechseln. Du benutzt das Teil doch beruflich und Zeit ist Geld oder nicht?
Dein Code kann und sollte verkürzt und dadurch schneller und übersichtlicher gemacht werden.
Das muß auch kürzer gehen mit einer Schleife bei Initialisieren der Userform:
Code:
Private Sub ComboBox5_Change()
ComboBox5 = Format(ComboBox5, "hh:mm")
End Sub
Private Sub ComboBox6_Change()
ComboBox6 = Format(ComboBox6, "hh:mm")
End Sub
Private Sub ComboBox7_Change()
ComboBox7 = Format(ComboBox7, "hh:mm")
End Sub
Private Sub ComboBox8_Change()
ComboBox8 = Format(ComboBox8, "hh:mm")
End Sub