Passwort vergessen?   -   Registrieren

VBA (Excel) Experten?
Verfasser Nachricht
Ayal Offline
Posting Freak

Beiträge: 1,884
Registriert seit: Nov 2006
Beitrag #1
VBA (Excel) Experten?
Ich bin ein VBA-noob, frage mich aber, obs ne Möglichkeit gibt, ein Programm zu schreiben, welches mir einen Auszahlungsschlüssel automatisch liefert mit all den Bedingungen, die zu erfüllen sind.

Ich beschreibe mal die Situation:

In einem Fussballclub gibt es Spieler, die ausgewählt wurden, Prämien zu kassieren. Diese sind während dem Jahr entweder in der Stammformation oder auf der Ersatzbank.
Dies kann von Monat zu Monat ändern (beispielsweise wurden am 1. Januar nur Amateure in die Startelf befördert; der Rest konnte auf der Ersatzbank den Neujahrskater auskurieren lassen).


Der Präsident des Clubs verteilt nach dem Spiel trotz allem die Prämiem. Dabei gibt es 2 "Töpfe":

Für die Ersatzspieler werden pro Spieltag einfach insgesamt 50.- verteilt

Für diejenigen in der Startelf ist das ganze saisonabhängig (die aktuellen Zahlen findet man bei "aktuelle Verteilung"; es gibt 3 Möglichkeiten (Verteilung 1, 2 oder 3... je nach Situation.
Die Art der Verteilung wird am Spieltag selbst entschieden).


Nach Spielende wird jedem Spieler eine Note erteilt; diese berücksichtigt Trainings, Öffentliches Auftreten, Bilanz im Spiel, etc. und werden auch manuell eingegeben.


Nun erfolgt also die Verteilung (in %) anhand der Noten: man summiert alle Noten der Startelfmannschaft und erteilt jedem die errechnete %-Zahl.
(Siehe "Verteilungsschlüssel Runde 1").

Bei Costanzo wäre dies: 5.4 / 16.4 = 32.93%


Man muss hier zwischen den Ersatz- und Startelfspielern unterscheiden, da der Topf unterschiedlich gross ist.

Bei der Verteilungsschlüsselrunde 2 erfolgt nun die erste Restriktion: Ein Spieler der Startelf darf nicht mehr als 30% des Gesamtbetrags erhalten
(im obigen Fall darf Costanzo hier also nur 30%, nicht 32.93% einstreichen).

Bei den Ersatzsspielern ist der Maximalbetrag bei 80% (dies, weil der Topf sowieso nicht hoch ist).



Jetzt bleiben in gewissen Situationen ein Restbetrag übrig (siehe "RestSummeStart", resp. "RestSummeErsatz"). Dh, die Spieler, welche noch unter der Restriktion sind,
können davon profitieren. Dies habe ich nun so gemacht, dass alle Spieler, welche schon über dem Limit sind (das Maximum erreicht haben), keine Noten mehr erhalten,
die anderen bekommen dieselben Noten wie oben zugeteilt.


Bei der Verteilungsrunde 3 wird diese Ersatzsumme aufgeteilt für alle Spieler, die wie erwähnt noch nicht das Maximum erreicht haben.
(Der Spieler Huggel würde beispielsweise am 1.4.2010 der gesamte Rest bekommen von 56.67%... weil an diesem Spieltag nur 2 Leute in der Startelf waren
und Costanzo schon am Maximum war... aber in einem späteren Schritt wird auch hier Huggel von der Maximumsgrenze eingeholt werden, wie wir noch sehen werden).

Aber im Vergleich dazu wird am 1.7.2010 der Rest von 2.93% noch an die Spieler Incoom, Huggel und Streller mit jeweils 0.8%, 1.06% und nochmals 1.06% aufgeteilt).


Am 1.1.2010 war alles aufgegangen nach der Verteilrunde 1: Kein Spieler hat anhand seiner Noten den maximalen Ausschüttungsbetrag überschritten; zu beachten gilt noch,
dass es an diesem Tag keine Startelf gab... dh. Die Verteilung für die Startelf beträgt hier 0%).


Nun, in der 4. Phase des Verteilungsschlüssel wird geschaut, dass die Spieler, welche oben profitiert haben, die Maximalgrenze wieder nicht überschreiten:
es wird das MINIMUM genommen aus der Verteilrunde 2 + Verteilrunde 4 im Vergelich zur maximalen Auszahlungsrate (30% für Startelf, 80% für Ersatzsspieler).
Dh zB bei Huggel wird am 1.4.2010 dies zum "Verhängnis"; er bekommt nur 30%... aber im Vergleich zu vorher ist dies immer noch mehr,
als die 13%, welche er nach der 2. Runde bekommen hätte.


Ganz am Ende werden noch die Beträge in CHF zugeteilt:
Befindet sich ein Spieler in der Startelf, so wird sein %-satz (welche in der 4.Verteilrunde errechnet wurde) multipliziert mit dem Ausschüttungsbetrag für den laufenden Monat
für die Startelf (am 1.7. wären dies 700 CHF, am 1.4. 400 CHF und am 1.1. 500 CHF).


Ein Spieler von der Ersatzbank erhält einfach seinen Auszahlungsprozentsatz multipliziert mit "50" (da es dort konstant ist).

Zu Guter letzt wird noch geschaut, welcher Restbetrag übrig geblieben ist. Diesen Betrag bekommt dann der Präsident.


Ich habe diese Verteilrunden nun "manuell" erstellt und bin zum Schluss gekommen, dass man ca. 3 mal "durchlaufen" muss, damit der entgültige %satz festgelegt ist
(es häte beispielsweise am 1.4. nochmals einen Durchlauf geben können, falls ein weiterer Spieler in der Startelf gewesen wäre).


Es muss doch möglich sein, dass VBA all diese Schritte automatisch erledigt. Jedoch wie? Ist dies eine grosse Herausforderung?




<!-- m --><a class="postlink" href="http://img844.imageshack.us/i/76753767.jpg/">http://img844.imageshack.us/i/76753767.jpg/</a><!-- m -->
08-31-2010 11:44 AM
zitieren


Nachrichten in diesem Thema
VBA (Excel) Experten? - Ayal - 08-31-2010 11:44 AM
Re: VBA (Excel) Experten? - pitschsen - 08-31-2010, 01:13 PM
Re: VBA (Excel) Experten? - Ayal - 08-31-2010, 01:53 PM
Re: VBA (Excel) Experten? - pitschsen - 08-31-2010, 02:41 PM
Re: VBA (Excel) Experten? - Ayal - 08-31-2010, 02:41 PM
Re: VBA (Excel) Experten? - Ayal - 09-06-2010, 02:33 AM

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste

Kontakt | raise.ch | Nach oben | Zum Inhalt | Archiv-Modus | RSS-Synchronisation
Deutsche Übersetzung: MyBBoard.de, Powered by MyBB, © 2002-2024 MyBB Group.
Designed by © Dynaxel