Calculs avec conditions, trop compliqué pour moi. Help please :)

Vinz

XLDnaute Junior
Bonjour à tous!
J'élabore en ce moment un fichier qui me permettra de faire un classement général sur une saison de tournois de poker. Bref, il me reste juste une chose à faire pour que 99% soit automatisé, et je n'y arrives pas du tout (le VBA n'est pas mon fort et je n'ai malheureusement pas le temps d'approfondir mes connaissances sur ce sujet). Alors si vous pouviez m'aider, ça serait un temps précieux gagné pour moi et un temps sans doute très faible passé pour vous.
Go!

A partir de là il faut le fichier sous les yeux pour comprendre ce que je veux faire.


Je prendrais pour référence la feuille 1 du fichier joint.

-Vous remarquez qu'il y a deux couleurs (bleu, index 5 et vert index 14) pour noter la place de chaque candidat.

-Vous remarquez également qu'il y a pour une date unique, deux cellules "Nb joueurs" (une en bleu et l'autre en vert). En effet, à la même date il y a deux tournois: tournoi 1 et tournoi 2 respectivement.
Les joueurs peuvent très bien faire soit le tournoi 1, soit le tournoi 2 (mais jamais les deux le même jour évidemment!).

-Lors de la rentrée des résultats, on met la place qu'a fait le joueur sur le tournoi: s'il a fait le tournoi 1 sa place sera notée en bleu, s'il a fait le tournoi 2 elle sera notée en vert (s'il n'en a pas fait, la cellule correspondante reste vide!).

-Une fois la place rentrée, les points se calcule automatiquement. Or voilà, la formule a besoin d'une variable: le nombre de joueur sur le tournoi que le joueur a fait (1 ou 2). (voir formule dans le tableau). Et c'est pour cela qu'il faut absolument le "Nb joueurs" pour le tournoi 1 et le "Nb joueurs" sur le tournoi 2.

-Je ne veux pas m'amuser à changer la formule sans arrêt, donc je voudrais savoir si c'était possible de créer une macro qui exécutes ceci:

Si la couleur du chiffre de la place est bleu: alors il s'agit du tournoi 1. Le "Nb joueurs" correspondant est donc en E3 (pour le tournoi du 01.12.2011 sinon ça serait G3 pour celui du 01.01.2012, etc...). Application de la formule:

100*RACINE(E$3/(PUISSANCE(D6;EXP(10/E$3))))*PUISSANCE(2,2;LOG10(0+0,01))

Sinon si la couleur du chiffre de la place est vert: alors il s'agit du tournoi 2. Le "Nb joueurs" correspondant est donc en E4 (pour le tournoi du 01.12.2011 sinon ça serait G4 pour celui du 01.01.2012, etc...). Application de la formule:

100*RACINE(E$4/(PUISSANCE(D6;EXP(10/E$4))))*PUISSANCE(2,2;LOG10(0+0,01))

Sinon = 0

Voilà, j'espère avoir été explicite. Pour info le bleu utilisé est index_color 5 et le vert index_color 14.

Si vous pouviez m'aider, ça me permettrait de concrétiser mon projet...

...merci d'avance!

Cdlt
 

Pièces jointes

  • Nouveau classement.xlsm
    52.2 KB · Affichages: 38
  • Nouveau classement.xlsm
    52.2 KB · Affichages: 43
  • Nouveau classement.xlsm
    52.2 KB · Affichages: 41

Misange

XLDnaute Barbatruc
Re : Calculs avec conditions, trop compliqué pour moi. Help please :)

Bonjour
une couleur n'est pas un paramètre qu'on peut intégrer dans une formule, sauf à passer par les macros XL4.
Pour ça il faut définir un nom
par exemple, en D6 tu définis un nom "couleur"
=lire.cellule(C6;24)
en D6 si tu tapes =couleur
tu récupères l'index de la couleur
ensuite tu intègres ce paramètre dans ta formule :
=si(couleur=5;taformule;tonautreformule)
 

Pièces jointes

  • Copie de Nouveau classement.xlsm
    53.9 KB · Affichages: 32

job75

XLDnaute Barbatruc
Re : Calculs avec conditions, trop compliqué pour moi. Help please :)

Bonjour Vinz,

Voyez le fichier joint avec cette fonction dans Module3 :

Code:
Function NbJoueurs() As Integer
Dim cel As Range, c As Integer
Application.Volatile
Set cel = Application.Caller
c = cel.Offset(, -1).Font.ColorIndex
NbJoueurs = Cells(IIf(c = 5, 3, IIf(c = 10, 4, 0)), cel.Column)
End Function
Notez que le code couleur du vert utilisé est 10 et non 14...

En feuil1 j'ai remplacé dans les formules E$4 et G$4 par NbJoueurs().

La fonction est volatile et se recalcule en appuyant sur F9.

Nota : si l'on applique une autre couleur que 5 ou 10 la fonction renvoie une erreur.

Edit : salut Misange, pas rafraîchi.

A+
 

Pièces jointes

  • Nouveau classement(1).xls
    140 KB · Affichages: 33
Dernière édition:

job75

XLDnaute Barbatruc
Re : Calculs avec conditions, trop compliqué pour moi. Help please :)

Re,

Effectivement sur Excel 2010 le code du vert est 14.

La conversion du fichier sur Excel 2003 donne le code 10.

Mais vous saurez adapter la fonction je pense.

A+
 

Misange

XLDnaute Barbatruc
Re : Calculs avec conditions, trop compliqué pour moi. Help please :)

Salut Job le parisien
Oui c'est bien 10 et pas 14 le vert choisi.
Attention, pour la solution sans macro que je propose, il est impératif que les couleurs choisies soient les couleurs de base d'excel. ca ne peut pas marcher avec d'autres couleurs.
pour ma part plutot que de passer par ce type de solution (avec ou sans macro) je préfère largement avoir une colonne supplémentaire contenant un code (payant gratuit) et tester cette colonne (qui peut être masquée !) plutot que de recourir à des artifices qui ne fonctionneront plus le jour ou tu trouveras que le jaune d'or est plus beau que le vert printemps...
 

Vinz

XLDnaute Junior
Re : Calculs avec conditions, trop compliqué pour moi. Help please :)

Merci pour vos réponses,
Tu as raison Misange, en rajoutant une colonne avec un ID 1 ou 2 pour payant ou gratuit. Mais comment fait-on ensuite?

Merci de votre implication,
Cdlt.
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 015
Membres
101 870
dernier inscrit
Dethomas