Exigences:

  • Connaissance de base de vba – Utilisation de tables / plages nommées Lorsque vous travaillez avec des classeurs activés et désactivés, parfois des mois entre les révisions du classeur, il peut être difficile de se souvenir de la structure de données et de la formule configurée.

C’est ainsi que je contourne ce problème et m’assure que j’aurai dans quelques minutes un aperçu des calculs effectués.

Dans cet exemple, je montrerai comment une formule de calcul des bonus peut être simplifiée.

image

Apparence de la formule sans tableau ni formule UDF:

SI (SOMME (C2 / D2) ⇐ 1; 0; SI (SOMME (C2 / D2)> = 3; SOMME C2-D2) 0,03); SI (ET (SOMME (C2 / D2)> 1; SOMME (C2 / D2) <3) = VRAI; SOMME ((C2-D2) 0,02); 1)

La logique de cette formule peut être difficile à extraire à première vue.

Apparence de la formule avec table et sans formule UDF:

IF (SOMME ([@ [Ventes annuelles]] / [@ Salaire]) ⇐ 1; 0; IF (SOMME ([@ [Ventes annuelles]] / [@ Salaire])> = 3; SOMME [@ [Ventes annuelles]] – [@ Salaire]) 0,03); IF (AND (SUM ([@ [Yearly sales]] / [@ Salary])> 1; SUM ([@ [Yearly sales]] / [@ Salaire]) <3) = TRUE; SUM (([@ [Yearly sales]] – [@ Salary]) 0,02); 1)

Avec les tableaux, cela devient un peu plus facile à lire car vous êtes informé des cellules utilisées dans le calcul. «  Je préfère avoir des titres de fonction longs et descriptifs que des titres courts et non descriptifs. To 3 bonus_factor = 0.02 Case Is> 3 bonus_factor = 0.03 Case Else bonus_factor = 0 # End Select return_bonus = (annualSales – salaire) * bonus_factor Calculate_salary_to_sale_ratio_and_return_bonus = return_bonus Fin Fonction Utilisation de la fonction Formule:

Calculate_salary_to_sale_ratio_and_return_bonus ([@ [Yearly sales]]; [@ Salary])

Cela vous indique exactement ce qui se passe au premier coup d’œil, et vous pouvez toujours approfondir le code pour lire les détails. Vous trouverez en pièce jointe un fichier démontrant les trois scénarios