{"text_format":"1","workbook":"xlsx","n_sheets":4,"sheets":["ReadMe","Input","Workflow","Output"],"not_rendered":{"charts":0,"images":0,"macros":1,"external_links":0,"defined_names":21,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900"}

{"sheet":"ReadMe","index":0,"n_rows":17,"n_cols":1,"rows_kept":17,"cut":false,"hidden":false,"merged":[]}
["Diese Anwendung ist ein einfaches Beispiel für einen Umsatzbericht, welches meine bevorzugten Programmelemente verwendet."]
["Das Ziel war ein einfacher, nachvollziehbarer Berichtsprozess: Welche Mitarbeiter hatten welche Umsatzanteile für welchen Mandanten, und wer hat wann welchen Umsatzbericht mit welchem Ergebnis erstellt."]
["Die Scripting Dictionaries oMA, oMASumme, oMandant, oMandantSumme und oSumme ermöglichen die einfache Einsammlung, Speicherung und Ausgabe von allen numerischen und nicht-numerischen Daten mit nicht-numerischen Suchbegriffen."]
["Die Ausgabedaten werden sowohl im Tabellenblatt Output als auch im Unterverzeichnis Reports ausgegeben und durch die Subroutine sbZip zusätzlich in ein Jahresarchiv gezippt."]
["Die Funktion RoundToSum stellt die fehlerfreie Rundung der Mitarbeiteranteile sicher."]
["Die Enumerierung Eingabespalten ermöglicht eine nachvollziehbare Adressierung und einfache spätere Änderung der Eingabespalten."]
["Das Modul LoggerFactory und das Klassenmodul Logger zeigen, wer welchen Umsatzbericht wann mit welchem Ergebnis erstellt hat. Siehe Tabellenblatt Workflow und Unterverzeichnis Logs."]
["Das Klassenmodul SystemState stellt die gewünschten Umgebungsparameter für die Anwendung ein."]
["Die Anwendung adressiert die Tabellenblätter direkt mit VBA internen Codenamen (wsI, wsO, wsW)."]
["Fehlerhafte Eingaben und inkonsistente Ausgabesummen werden farblich (in gelb) markiert und in den Logs protokolliert."]
["Das Modul LibFileTools stellt sicher, dass diese Anwendung auch unter Sharepoint / OneDrive läuft."]
["Das Modul TimeZone bietet die Umrechnungen von Zeitzonen - Voraussetzung ist ein ordnungsgemäß installiertes MS Outlook."]
["Die Module modPerf und modTimer und das Klassenmodul clsPerf ermöglichen die Messung der Laufzeiten von Subroutinen und Funktionen - dafür muss die Precompilerkonstante MEASURE_RUNTIME = True gesetzt werden."]
["Falls eine andere Anwendung, die Eingabedaten (z. B. Umsätze pro Mandant, Zeiterfassungen der Mitarbeiter multipliziert mit deren Seniorität als Gewichte) als Datei bereitstellen kann, sollte diese Anwendung um ein Unterverzeichnis Eingabedateien mit Jahresunterordner (analog der existierenden Ausgabestruktur) erweitert werden."]
["Eine detaillierte Dokumentation dieser Anwendung ist mit dem BPM System Adonis einfach möglich - siehe https://www.berndplumhoff.de/adonis_de."]
[]
["Bernd Plumhoff 9. Mai 2025"]

{"sheet":"Input","index":1,"n_rows":10,"n_cols":7,"rows_kept":10,"cut":false,"hidden":false,"merged":[]}
["Mandant","Rg-Nr","Datum","Verteilung","Umsatz","USt","Brutto"]
["ABC GmbH",1,"2025-04-01","MA1 20/MA2 55/MA3 25",13000,{"$f":"E2*0.19","v":2470},{"$f":"E2+F2","v":15470}]
["DEF AG",2,"2025-04-02","MA2 100",32000,{"$f":"E3*0.19","v":6080},{"$f":"E3+F3","v":38080}]
["GHI GmbH & Co KG",3,"2025-04-03","MA1 41,6/MA3 58,4",77000,14630,91630]
["JKL SE",4,"2025-04-04","MA4 63/MA5 37",8000,1520,9520]
["MNO Ltd",5,"2025-04-05","MA2 33/MA6 33/MA7 34",45000,8550,53550]
["ABC GmbH",6,"2025-04-06","MA1 77/MA5 20/MA7 3",53000,10070,63070]
["DEF AG",7,"2025-04-07","MA1 41,6/MA3 58,4",70000,13300,83300]
["GHI GmbH & Co KG",8,"2025-04-08","MA2 100",66000,12540,78540]
["JKL SE",9,"2025-04-09","MA1 80/MA3 20",13000,2470,15470]

{"sheet":"Workflow","index":2,"n_rows":9,"n_cols":5,"rows_kept":9,"cut":false,"hidden":false,"merged":[]}
[null,null,null,null,"Message"]
[]
[null,null,null,null,"EVER: BERND-CAPTIVA\\earso 07.06.2025 06:21:48 [Start_Log] - Logging started with Mitarbeiter_Umsatzanteile_v0.2"]
[null,null,null,null,"EVER: BERND-CAPTIVA\\earso 07.06.2025 06:21:48 [Start_Log] - Microsoft Windows 11 Home 10.0.22000 (64-Bit) and Excel 2024 (64-Bit)"]
[null,null,null,null,"INFO: BERND-CAPTIVA\\earso 07.06.2025 06:21:48 [Start_Log] - Application ThousandsSeparator '.', DecimalSeparator ',', use system separators"]
[null,null,null,null,"INFO: BERND-CAPTIVA\\earso 07.06.2025 06:21:48 [Start_Log] - App.Internl ThousandsSeparator '.', DecimalSeparator ',', ListSeparator ';'"]
[null,null,null,null,"INFO: BERND-CAPTIVA\\earso 07.06.2025 06:21:48 [Start_Log] - App.Internl xlCountryCode '49', xlCountrySetting '49'"]
[null,null,null,null,"INFO: BERND-CAPTIVA\\earso 07.06.2025 06:21:48 [Start_Log] - VBAProject References: Visual Basic For Applications, Microsoft Excel 16.0 Object Library, OLE Automation, Microsoft Office 16.0 Object Library"]
[null,null,null,null,"EVER: BERND-CAPTIVA\\earso 07.06.2025 06:21:48 [End_Log] - Logging finished with Mitarbeiter_Umsatzanteile_v0.2"]

{"sheet":"Output","index":3,"n_rows":7,"n_cols":9,"rows_kept":7,"cut":false,"hidden":false,"merged":[]}
["Grün > 50%,\r\nGelb > 80%,\r\nRot = 100%","Summe","MA2","MA1","MA3","MA7","MA6","MA5","MA4"]
["Summe",377000,120000,114962,91698,16890,14850,13560,5040]
["GHI GmbH & Co KG",143000,66000,32032,44968]
["DEF AG",102000,32000,29120,40880]
["ABC GmbH",66000,7150,43410,3250,1590,null,10600]
["MNO Ltd",45000,14850,null,null,15300,14850]
["JKL SE",21000,null,10400,2600,null,null,2960,5040]