Abstract
Diese Anwendung ist ein einfaches Beispiel für einen Umsatzbericht, welches meine bevorzugten Programmelemente verwendet.
Eingabe:
Ausgabe:
So erkennen Sie Ihre wichtigsten Kunden und Mitarbeiter auf einen Blick (siehe grüner Hintergrund):
- Mit den Kunden GHI GmbH & Co KG und DEF AG erzielen Sie mehr als 50% Ihres Gesamtumsatzes.
- Ihre Mitarbeiter MA2 und MA1 generieren mehr als 50% Ihres Gesamtumsatzes.
- 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
undoSumme
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 KlassenmodulLogger
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 (externer Link!) LibFileTools stellt sicher, dass diese Anwendung auch unter Sharepoint / OneDrive läuft.
- Das Modul (externer Link!) TimeZone bietet die Umrechnungen von Zeitzonen - Voraussetzung ist ein ordnungsgemäß installiertes MS Outlook.
- Die Module (externe Links!) 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.
Download
Bitte den Haftungsausschluss im Impressum beachten.
Mitarbeiter_Umsatzanteile.xlsm [314 KB Excel Datei, ohne jegliche Gewährleistung]