ich beziehe mich nochmal auf meinen Thread vom 12.04. (Daten gleichzeitig in mehrere Zellen schreiben,...) und der Idee von Daniel am 17.04. für die ich mich an dieser Stelle bedanke.
Leider komme ich an den Beitrag nicht mehr schreibend dran (vermutlich seh ich den Wald vor Bäumen nicht) und mach daher ein neues "Fass" auf ;)
Es ist mir mittlerweile gelungen die Toogle-Buttons etwas sinniger einzufärben (optimal ist das aber noch nicht wirklich) und auch das parallele Schreiben vom SOLL in den IST-Plan funktioniert.
Ich hab das mal so gelöst, ob's besser geht kann mir hoffentlich jemand sagen:
Sub WriteVal()
Dim oVal As Variant
Dim oVal2 As Variant
Dim rAC As Range
Dim SN As String
SN = ActiveSheet.Name
Set rAC = Selection
If rAC.Columns.Count = 1 And ActiveSheet.Cells(5, rAC.Column) = "A" Then
oVal = Application.WorksheetFunction.VLookup(ThisWorkbook.Sheets(SN).Range("A2"), _
Tabelle5.Range("H1:J22"), 2, False)
rAC.Offset(0, 3).Value = oVal
If IsNumeric(Left(ThisWorkbook.Sheets(SN).Range("A2"), 2)) Then
oVal2 = Application.WorksheetFunction.VLookup(ThisWorkbook.Sheets(SN).Range("A2"), _
_
Tabelle5.Range("H1:J22"), 3, False)
rAC.Value = oVal
rAC.Offset(0, 1).Value = oVal2
rAC.Offset(0, 4).Value = oVal2
If Not rAC.Offset(0, 2).HasFormula Then
rAC.Offset(, 2).FormulaR1C1 = "=(RC[-1]-RC[-2])*24"
rAC.Offset(, 2).NumberFormat = "0.00_ ;[Red]-0.00"
rAC.Offset(, 5).FormulaR1C1 = "=(RC[-1]-RC[-2])*24"
rAC.Offset(, 5).NumberFormat = "0.00_ ;[Red]-0.00"
End If
Else
rAC.Offset(0, 0).Value = oVal
rAC.Offset(0, 3).Value = oVal
End If
Else
MsgBox "Für Eingabe von Anfangszeiten nur [A]-Spalten selektieren!", _
vbOKOnly, "Eingabebereich prüfen"
End If
Set rAC = Nothing
End Sub
Da es mir auch gelungen ist "Sonderzeiten" wie Frei, Urlaub, Krank usw. nach vorne in die "A"nfangszeit zu setzen benötige ich nun nur noch die jeweils anrechenbare Stunden in der "S"tunden-Spalte (frei halt natürlich 0,00 Std). Diese befinden sich in einer Hilfstabelle direkt hinter dem jeweiligen Mitarbeiter, so wie er auch auf den Dienstplan-Sheets oben zu finden ist bzw. ausgewählt werden kann, in der Spalte TgAZ.
Wie bekomme ich das in den Code oben oder in einer weiteren "Funktion" umgesetzt?
Ein weiteres wäre, daß beim Erstellen des DP auschließlich nur die Spalte "A"nfangszeit im Bereich SOLL ausgewählt werden darf, um den Ersteller zu zwingen den SOLL-Plan auch dort zu erstellen und nicht wie schon zuletzt passiert im IST-Plan.
Wenn jemand auch eine Idee hat wie ich die Urlaubstage zählen und den Resturlaub ermitteln bzw. schreiben (Hilfstabelle RUrl) kann wäre mein Tool fast schon fertig ;)
Vielen Dank schon mal im Voraus.
Grüße,
Uwe
https://www.herber.de/bbs/user/121327.zip
P.S. die aktuelle Version mußte ich als Zip hochladen, da xlsm vom Server nicht angenommen wurde. Sie enthält übrigens ne Menge Daten ;)