bonjour à tous,
je progresse très difficilement en VBA et souvent il m'arrive de penser que les concepteurs de VBA ont complexifiés les choses pour le seul plaisir d'empoisonner la vie du développeur.
je donne ci dessous un exemple des différentes écritures de la fonction countif telles qu'il m'a été donné de les trouver dans divers codes.
quelqu'un peut-il m'expliquer la raison de ces différentes écritures et ce qui fait qu'on privilégiera l'une plutôt que l'autre ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Sub Macro2() Range("C2").Select ActiveCell.FormulaR1C1 = "=countif(RC[-2]:R[8]C[-2],R[-1]C[-1])" 'peut être également écrite avec ActiveCell.Formula et autres dérivées [c3] = Evaluate("countif(a2:a10,b1)") [c4] = [countif(a2:a10,b1)] 'autre écriture d'evaluate [c5] = WorksheetFunction.CountIf([a2:a10], [b1]) [c6] = Application.CountIf([a2:a10], [b1]) End Sub
evaluate (seconde écriture) est la plus proche de la formulation sur feuille Excel et donc moins perturbante.
Mais est-elle applicable à toutes les formules logées directement sur la feuille Excel ?
Pour ce qui me concerne, la première formulation est la plus indigeste.
Cordialement.
Partager