Sans répéter ce que vient de dire U.Milité, je crois qu'il faut que tu choisisses ce que tu veux obtenir...
D'abord, on peut tout faire avec des formules, cela risque seulement d'être à la fois un peu fastidieux à faire, long et un peu compliqué, et nécessité des aménagements avec diverses colonnes masquées pour des calculs intermédiaires qui ne doivent pas apparaître...
Une des raisons de l'utilisation de VBA est d'éviter ces complications...
Dans les cas simples, une fonction personnalisée permet de répondre à des cas non prévus par les fonctions génériques, permettant de substituer une formule simple à une qui serait excessivement longues ou plusieurs sans doute pas courtes non plus...
Mais cela a ses limites ! En termes de personnalisations, tes dernières spécifications font apparaître que tu veux des résultats multiples, intercalés les uns au milieu des autres, et sous des formes ne permettant pas de les déduire les uns des autres...
A partir de là, le plus économique devient un traitement complet par macro, qui lors de son exécution pourra conserver les résultats intermédiaires et les réutiliser pour d'autres calculs ou les restituer sous d'autres formes. Pour t'illustrer : lorsqu'on a déterminer que tu as une période du 3 au 8 (correspondant à la fois à des dates et des rangs de colonnes dans une plage, on peut inventorier la plage, décompter les valeurs qui y sont, et te fournir un résultat "du 3 au 8..." dans une cellule, "2A" et "4B" dans deux autres (mais la macro aura utilisé 8 à 10 variables pour calculer et composer les différents résultats...
Si tu travailles en formules, ce que tu ne vois pas en utilisant une macro, il faudra que tu l'aies sous une forme ou une autre sur ta feuille !
Ou bien tu limites très très fortement tes personnalisations...
Mais sauf erreur, tu as fourni un classeur qui contenait 5 modules vides. Comme ils ne sont pas apparus tout seuls, il a bien fallu que tu les insères ! Ceci fait il ne te reste plus qu'à copier du code et le coller dedans, ce qui est tout de même enfantin...
Cordialement.