AW: Zelleintrag in UF
21.10.2010 07:39:55
fcs
Hallo Heinz,
das war jetzt nicht ganz trivial.
Die von Textbox (name), Combobox (Tätigkeit) und die Spalte in die der Name eingetragen werden soll werden an eine Sub-Routine übergeben.
Abhängig von der Tätigkeit wird dann der Name in die entsprechende Zeile/Spalte eingetragen.
Gruß
Franz
Private Sub CommandButton1_Click()
Dim ZeileReserve As Long, iIndex As Long
Application.ScreenUpdating = False
Me.Hide
With Sheets("Schichtliste")
.Unprotect Password:="test"
ZeileReserve = 20 'Zeilenzähler für Reserve-Personal
.Range("Q5") = ComboBox1 'Datum
.Range("U5") = ComboBox2 'Schicht
.Range("F7") = ComboBox21 'Schichtmeister
.Range("F32") = TextBox15 'Schrumpfer
.Range("E27") = TextBox17 'QS
.Range("K5") = TextBox3 'Vorarbeiter
'Ausfüllbereiche leeren
.Range("E10:G19").ClearContents
.Range("C21:C25").ClearContents
.Range("E28:G28").ClearContents
.Range("F33:G33").ClearContents
'Sortierer 1 bis 10
For iIndex = 1 To 10
Call subPersonal(sName:=Me.Controls("TextBox" & 3 + iIndex).Value, _
sTaetigkeit:=Me.Controls("ComboBox" & 4 + iIndex).Value, _
lSpalte:=5, lZeile:=ZeileReserve)
Call subPersonal(sName:=Me.Controls("TextBox" & 24 + iIndex).Value, _
sTaetigkeit:=Me.Controls("ComboBox" & 4 + iIndex).Value, _
lSpalte:=7, lZeile:=ZeileReserve)
Next
'Anlerner 1
Call subPersonal(sName:=TextBox18, sTaetigkeit:=ComboBox15, lZeile:=ZeileReserve)
'Anlerner 2
Call subPersonal(sName:=TextBox19, sTaetigkeit:=ComboBox16, lZeile:=ZeileReserve)
'Ferialarbeiter 1 bis 3
For iIndex = 1 To 3
Call subPersonal(sName:=Me.Controls("TextBox" & 19 + iIndex).Value, _
sTaetigkeit:=Me.Controls("ComboBox" & 16 + iIndex).Value, _
lSpalte:=5, lZeile:=ZeileReserve)
Call subPersonal(sName:=Me.Controls("TextBox" & 40 + iIndex).Value, _
sTaetigkeit:=Me.Controls("ComboBox" & 16 + iIndex).Value, _
lSpalte:=7, lZeile:=ZeileReserve)
Next
Unload Me
.Range("A1").Copy
.Range("A1").PasteSpecial xlPasteFormats
Sheets("Schichtliste").Select
Application.CutCopyMode = False
End With
End Sub
Private Sub subPersonal(sName As String, sTaetigkeit As String, _
Optional lSpalte As Long, Optional lZeile As Long)
If sName = "" Or sTaetigkeit = "" Then Exit Sub
With Sheets("Schichtliste")
Select Case sTaetigkeit
Case "L:311+P:": .Cells(10, lSpalte) = sName
Case "L:312+P:": .Cells(11, lSpalte) = sName
Case "L:321+P:+322+P:": .Cells(12, lSpalte) = sName
Case "L:321+P:": .Cells(13, lSpalte) = sName
Case "L:322+P": .Cells(14, lSpalte) = sName
Case "L:331+P:+332+P:": .Cells(15, lSpalte) = sName
Case "L:331+P:": .Cells(16, lSpalte) = sName
Case "L:332+P:+333+P:": .Cells(17, lSpalte) = sName
Case "L:332+P:": .Cells(18, lSpalte) = sName
Case "L:333+P:": .Cells(19, lSpalte) = sName
Case "Reserve:"
lZeile = lZeile + 1
.Cells(lZeile, 3) = sName
Case ""
'do nothing
Case "QS Anlernen": .Cells(28, 5) = sName
Case "Schrumpfer Anlernen": .Cells(33, 6) = sName
Case Else
MsgBox "Für die Auswahl """ & sTaetigkeit _
& """ Fehlt noch eine Case-Zeile im Makro"
End Select
End With
End Sub