Re-bonjour,
Décidément aujourd'hui j'ai décidé de me prendre la tête avec Visual Basic !
Je vous explique ce que je souhaite faire : Sur la feuille SEPT 18 nous souhaitons savoir quel employé a généré le plus de chiffre d'affaire en pourcentage !
Puisque les heures travaillées des agents sont variables, prendre la valeur en € n'aurait aucun sens.
Voici l'algorithme à traduire dans Visual Basic :
function calcul(personne) {
caFictifTotal = 0
foreach(personnes as p) {
caFictifTotal += CaFictif(p);
}
return (CaFictif(p)*100)/caFictifTotal;
}
function CaFictif(p) {
heuresMax = maxHeures(collaborateurs);
return (p.CA*heuresMax)/p.nbHeures;
}
Exemples pour 3 employés (sur le papier c'est simple) :
A a fait un CA de 5000 € pour 17h travaillées
B a fait un CA de 3000 € pour 22h travaillées
C a fait un CA de 2000 € pour 30h travaillées
En premier, nous allons ramener le CA de chaque agent à l'horaire le plus élevé :
A : (5000x30)/17 = 8 823,53 €
B : (3000x30)/22 = 4090,91 €
C : 2000 € (puisque c'est l'employé qui a le plus d'heures travaillées)
Ensuite, nous calculons directement le pourcentage sachant que 100 = A + B + C
A : (8 823,53x100)/14 914,44= 59,16%
B : (4 090,91x100)/14 914,44= 27,43 %
C : (2 000 x100)/14 914,44= 13,41 %
Si quelqu'un sait traduire ceci dans Excel je suis preneur ahah !