Compacité/Lisibilité d’une formule
Dans l’exemple que nous étudions aujourd’hui, nous devons calculer la rémunération de personnes dont le tarif horaire est indiqué en colonne A et le nombre d’heures de travail dans la journée dans la colonne B.
La rémunération de toute heure au-delà de 8 heures est majorée de 50%, et celle de toute heure au-delà de 12 heures est doublée.

La formule en C2 est :
=si(B2>12;(8*A2)+(4*1,5*A2)+((B2-12)*A2*2);si(B2>8;(8*A2)+((B2-8)*A2*1,5);A2*B2))
La formule en D2 est :
=A2*(B2+0,5*(max(0;B2-8)+max(0;B2-12)))
La formule en D2 est certes deux fois plus compacte que la formule en C2 mais – pour beaucoup de gens – elle sera nettement moins compréhensible que la formule en C2.
Remarque – Bien entendu, nous déconseillons formellement l’utilisation – comme c’est le cas dans cet exemple – de constantes cachées (les valeurs 1 ; 1,5 ; 2 ; 8 ; 12). Nous ne l’avons fait ici que pour simplifier la présentation du cas et les formules. Normalement, nous aurions mis tous ces paramètres dans ces cellules de la feuille : ainsi, les formules resteraient « bonnes » même si l’on devait un jour modifier ces valeurs.
La copie d’écran ci-dessus représente notre solution avec, en bas de l’image, la description des formules utilisée en C5 et C6.
Pour que cette macro fonctionne, il faut que vous ayez préalablement sélectionné le bloc B2:B17 des valeurs à contrôler. Voici la macro :
En conclusion, avec cette solution pour Excel 2003 ou XP, le processus est plus long mais il y a deux avantages en fin de course :
Vous ne pouvez malheureusement pas éviter ce message d’alerte. C’est le prix à payer pour pouvoir bénéficier de la grande richesse des commandes macros Excel 4 !
Cette formule utilise le nom « Classeur » dont nous voyons la définition dans la copie d’écran provenant de Name Manager.
Au cas où les quelque 84 objets « standard » de SmartArt ne vous suffiraient pas…
