Sélection de lignes avec des mots



Cette fonction est horriblement mal nommée : Trouve(). Il est en effet totalement ridicule d’appeler Cherche() et Trouve() deux fonctions qui – à un détail près – jouent exactement le même rôle !
La syntaxe de la fonction Trouve() est exactement la même que celle de la fonction Cherche(), avec un troisième argument facultatif identifiant la position à partir de laquelle on souhaite débuter la recherche.
Ceci dit, pour une fois, ce n’est pas la traduction en français de la fonction qui est en cause, car en anglais on utilise Search() et Find(), qui soulèvent tout à fait le même problème.
M’enfin, comme dirait Gaston Lagaffe, on ne peut pas refaire le monde...
En C1, nous avons entré la formule =5-cherche(B1;"ABCDF") qui a été ensuite recopiée en dessous. Cela nous permet de calculer en C11 la simple moyenne de C1:C9.
En B12, nous avons entré une formule matricielle, donc validée avec [Ctrl]-[Alt]-[Entrée], qui nous permet de calculer directement le même résultat sans avoir besoin de la colonne C, la formule étant : =moyenne(5-cherche(B1:B9; "ABCDF")).
Mais pourquoi passer par une formule matricielle quand on peut faire à la fois plus rapide et plus simple ?
La meilleure solution, utilisée en B13, est la formule : =sommeprod(5-cherche(B1:B9;"ABCDF"))/nbval(B1:B9) !
Conseil - Pour suivre l'évolution dans la macro tout en en observant l'effet sur la feuille de calcul, réduisez la fenêtre du VBA. Vous aurez alors "le beurre et l'argent du beurre".
Vous constaterez que la macro sélectionne d’abord le bloc B1 :B5, puis en affiche la valeur moyenne...
Là, pour le coup, [average(B1:B5)] est bien plus rapide à taper que application.average(B1:B5) !
Il faut dans ce cas entrer en A9:G14 la formule suivante :
=index($A$1:$F$7;colonne();ligne()-8)
Il ne reste alors plus qu’à effacer la formule de A9 qui, autrement, afficherait un « 0 » tout à fait inesthétique...
Remarque – Notons au passage que le bouton « Coller avec liaison », placé en bas du dialogue « Collage spécial », se grise dès que l’on coche la case
« Transposé ». On ne peut donc pas coller avec liaison tout en transposant, ce qui rend indispensable l’utilisation d’une formule telle que ci-dessus.