'--- Was ist ein Konstruktionsmakro? ---------------------------------------- ' 'Du baust Dir Deine Datei beliebig oft selbst, indem Du diesen Code ausführst! ' 'Wie funktioniert es? '- Mit Strg-A, Strg-C diesen Text, den Du hier gerade liest, komplett kopieren '- Aus Excel heraus den VBA-Editor aufrufen: Alt-F11 '- Ein Modul anlegen: Alt-E M '- Den Code dort einfügen: Strg-V '- Den Code ausführen: F5 ' 'Den Code brauchst Du danach nicht mehr! Was entsteht, ist eine Datei ohne VBA. Sie wird hiermit einfach nur gebaut. ' 'Welche Lohnzuschlags-Version wird erstellt? '--- Die von MacGyver, mit 10% Zuschlag von 23:-6: und sonntags/feiertags --- '--- http://www.clever-excel-forum.de/thread-14941.html (Mai 2018) ---------- ' 'Was kann das Modell schon? '- Wochentage einzeln mit verschiedenen Zuschlagszeiten versehen '- Feiertage (sind - bis auf Neujahr - hier nicht automatisch eingetragen) '- gesetzliche Pausen 6:-6:30 und 9:-9:15 genau in der richtigen Zuschlagszeit abziehen '- die Zeit-Summe wird für die Lohnberechnung erstellt, also inklusive 10% oder 0% Zuschlag abz. ges. Pausen '- alles ist anpassbar! Du kannst sogar die gesetzlichen Pausen manipulieren, bspw. auf 6:30-7: und 9:15-9:30 (ist aber nicht zulässig!) ' 'Was kann es noch nicht? '- Überstunden mit eigenem und gleichzeitigem Zuschlagssystem verwalten (das wird noch ein wenig schwierig werden!) '- halbe Feiertage HlgAbd und Silv berücksichtigen (ist aber kein großer Aufwand) '- es ist noch nicht geschwindigkeitsoptimiert, indem nur 2 Tage maximal ausgewertet werden, statt 366 (kein Problem) '- klassische weitere Lohnbelange, wie U, K, F, Zeitsaldo (ist aber kein großer Aufwand) ' 'Wie bediene ich es? '- In Spalte B und C einen Arbeitsbeginn und -ende eintragen (nach Zeile 371), nachdem Du die letzte Zeile nach unten ausgefüllt hast (wegen Formeln) '- In H3 den 1.1. des Jahres eintragen, also z.B. 1.1.2018 '- In O3:O20 die Feiertage des Jahres eintragen (wird später noch automatisiert) ' ''Bitte um Rückmeldung, falls bei Deiner Excel-Version etwas nicht richtig läuft. Ich kann sie nicht alle testen. Getestet: 2000 und 365 (Mai2018) ' 'Na dann: Viel Erfolg! Sub Lohnzuschlagsberechnung() 'Konstruktionsmakro: xl365: getestet, xl2000: getestet. Stand: 9.5.2018 Workbooks.Add xlWorksheet: Columns(16).Resize(, Columns.Count - 15).Hidden = True: [B:C].NumberFormat = "DDD DD/MM/YYYY hh:mm" [D:G].NumberFormat = "hh:mm": [O2] = "F-Tage": [D2] = "Pausen": [A:M].Interior.Color = 14474460: [D:G,N:O,H1:M2,H6:M7].Interior.Color = 10526880 [H:M].NumberFormat = "[h]:mm;;": [H1:M6].NumberFormat = "h:mm": [H7:L7].NumberFormat = "0%": [H7:M7] = Array(0.1, 0, 0.1, 0.1, "", "Zuschlag") [A8:O8] = Split("lfdNr von bis Pause1B Pause1E PauseNB PauseNE früh Tag spät WE-FT (unused) Sum StdLohn Lohn") [8:8].HorizontalAlignment = xlRight: [A:O].ColumnWidth = 7: [B:C].ColumnWidth = 17: [N:O].NumberFormat = "0.00;-0.00;" [B9] = 43101.05: [C9] = 43101.43: [D9] = "=(R[0]C2+R3C)*(RC2+R3C0,R3C:R5C,RC2:RC6)": [9:10].FillDown Names.Add "Dauer", "=SUM((1-2*(COLUMN(R[0]C2:RC6)>3))*(MOD(COLUMN(RC2:RC6),2)=0)*(XX>0)*XX)": [B10:C10] = "=R[-1]C+0.31": [10:58].FillDown [H1:N1] = Array(0, 0, 0, 0, 1, 1, "WE-FT"): [H2:N2] = Array(0, "6:", "23:", 1, 1, 1, "WT"): [H4] = "=R[-1]C+1" [H3,O3] = 43101: [5:367].Insert: [N3:N4] = "=(LOOKUP(RC[-6],R3C[1]:R22C[1])<>RC[-6])*(MOD(RC[-6],7)<>1)+1" [I3:M4] = "=RC8+INDEX(R1C:R2C,RC14)": [H4:N368].FillDown: [5:366].EntireRow.Hidden = True: [O2:O22].Interior.Color = 14474460 [H3:H368,O3:O22].NumberFormat = "DDDMMDD": [D372].Select: ActiveWindow.FreezePanes = True End Sub