Macro pour savoir où est la première valeur #0 dans un tableau

Fermé
VBAHell Messages postés 8 Date d'inscription lundi 15 janvier 2018 Statut Membre Dernière intervention 25 janvier 2018 - 24 janv. 2018 à 10:00
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 25 janv. 2018 à 14:18
Bonjour à tous,

J'aimerais obtenir une macro qui me dit depuis quand l'article est consommé. Pour cela, j'aimerais par exemple savoir si cela fait 12 mois que l'on a des données de conso (donc prendre en compte le mois actuel de l'année en cours et les 12 derniers mois consos > 0). Par contre admettons que l'on soit en novembre 2018, j'ai 23 potentielles données renseignées sur la référence (janvier 2017 jusqu'à novembre 2017). Si la première conso a eu lieu en février 2017 puis qu'il n'y a plus eu de conso jusqu'en octobre 2018 j'aimerais que le résultat apparaisse comme = à 12mois et non pas 1 mois car la première valeur a eu lieu lors de tel ou tel mois.

Dans mon tableau excel on voit par exemple la référence A : année 2017 sur une ligne et 2018 sur une autre et dans 12 colonnes on voit les consommations de janvier à décembre pour chaque année.
Quand il n'y en a pas eu on obtient 0, mon objectif est donc de voir quand a été renseigné la première consommation et si par rapport au mois actuel cela fait + de 12 mois, alors réponse = 100% pour la référence ou si inférieur à 12 mois alors réponse = ( x mois / 12 ) * 100

Vous trouverez ci-joint un extrait des données afin de mieux visualiser le problème, ainsi que les résultats que j'aimerais obtenir : https://www.cjoint.com/c/HAyjaltnPKS

Merci d'avance pour tout,

Cordialement

Thomas

1 réponse

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
24 janv. 2018 à 19:44
bonsoir, pourquoi ne fais-tu pas cela simplement avec des formules?
veux-tu vraiment utiliser une macro?
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
24 janv. 2018 à 21:03
C'est plus simple que restructurer son fichier pour qu'il se prête plus facilement à l'analyse souhaitée.
0
VBAHell Messages postés 8 Date d'inscription lundi 15 janvier 2018 Statut Membre Dernière intervention 25 janvier 2018
25 janv. 2018 à 09:33
Bonjour,

Je vais en effet utiliser des formules, mais celles-ci seront déclenchées par une macro.
J'ai travaillé sur ce sujet, voilà ce que j'ai pu en tirer :

https://www.cjoint.com/c/HAziHt4nISS

Désormais je copie les données de l'année n à côté de ceux de n-1. Chaque mois est donc numéroté de 1 à 24 pour les deux années.
Je calcule le mois en cours avec "=MOIS(AUJOURDHUI())" et l'étendue de la recherche à "=MOIS(AUJOURDHUI())" + 12.

Je dois juste rechercher à quel mois il y a eu la première valeur supérieure à 0. Je vais faire une rechercheV avec une condition de supériorité à 0. Quelqu'un voit comment faire?

Merci d'avance,

Thomas
0
VBAHell Messages postés 8 Date d'inscription lundi 15 janvier 2018 Statut Membre Dernière intervention 25 janvier 2018
25 janv. 2018 à 11:24
Je peux faire une fonction SI(C3 >0;1;SI(D3 >0;2; SI(E3 >0;3) etc etc? Mais c'est assez lourd comme fonction je n'aimerais pas faire ramer la macro ...

Est-ce que je dois essayer avec une boucle ?
Ou tenter avec une rechercheV mais alors là je ne vois pas encore comment ...
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
25 janv. 2018 à 14:18
Un essai :
https://mon-partage.fr/f/gRybBO90/
0