capturer debut-fin de period - VBA

VBA_DEAD

XLDnaute Occasionnel
bonjour

j`ai des donnees de calcul de "period de stress" sur 6 mois et 1 mois
je cherche a lister en VBA le debut et fin de period de "stress" comme explique ds le fichier joint.

ds une colonne, je mets line par line les donnees mensulles et je calcule le stress sur 6m ou 1m
quand j`ai le "stress", il me faut recuperer le dbut et fin de period pour qu`ensuite je puisse faire une analysis plus poussee sur la period de stress.

j`ai explique sur le file ce que j`essaie de faire.

pouvez vous m`aider?
merci

VBA_DEAD
 

Pièces jointes

  • Macro_Capture_Zone.xlsm
    35.4 KB · Affichages: 50

Modeste

XLDnaute Barbatruc
Re : capturer debut-fin de period - VBA

Bonjour VBA_DEAD,

Je ne sais pas trop si j'ai compris: je suis familier du stress, mais alors le stress des marchés une autre planète (comme s'il n'y avait pas assez avec le stress que lesdits marchés provoquent aux-mêmes. On ne va pas les plaindre, tout de même :p)

Bref une proposition par formules:
- deux plages nommées respectivement "Dates" et "Stress"
- en colonne F, une formule matricielle qui "récupère" chaque date correspondant à une ligne "Stress"
- en colonne E, une simple formule DECALER, qui prend la date 6 lignes plus haut (si tant est que tu as une date pour chaque fin de mois)

... Tu nous diras si le résultat est correct et, le cas échéant, pourquoi tu évoquais une solution par macro?
 

Pièces jointes

  • Macro_Capture_Zone (V2).xlsm
    36.5 KB · Affichages: 37

Modeste

XLDnaute Barbatruc
Re : capturer debut-fin de period - VBA

Bonsoir VBA_DEAD,

La fonction PETITE.VALEUR ne fait pas tout à fait la même chose que MIN, dans le cas présent: elle permet justement de trouver les plus petites valeurs au rang 1, puis 2, puis 3, etc.
La formule matricielle permet de récupérer le plus petit n° de ligne de la feuille "Data_Analysis", pour autant que dans cette même feuille, le mot "Stress" figure en colonne J (ici, la ligne 33). La formule de la ligne suivante, récupère le n° de ligne suivant (34) et ainsi de suite.
Petit test, pour comprendre: positionne-toi sur la formule en F3 et -dans la barre de formule- sélectionne précisément cette partie:
Code:
PETITE.VALEUR(SI(Stress="Stress";LIGNE(Dates)-9);LIGNES($1:1))
... appuye maintenant sur la touche F9 de ton clavier. La partie de formule sélectionnée est remplacée par le nombre 24. Celui-ci correspond précisément à la position de la première mention "Stress" en colonne J. Il s'agit de la ligne 33 du fichier, mais de la 24e ligne de la plage nommée Stress (d'où le '-9' dans la formule: 33-9=24)

... Tu me suis? :D
Surtout, ne pas oublier d'appuyer sur la touche d'échappement (Esc) faute de quoi la formule contiendrait en permanence '24' au lieu du morceau de la formule initiale !

N'hésite pas à nous dire, si je ne suis pas assez clair: quelqu'un aura sans doute une autre ressource à proposer.

Attention, si le volume de tes données est important, les formules matricielles peuvent générer un temps de calcul conséquent ... il faudra alors qu'on cherche une autre solution si le temps devient handicapant.
 

Discussions similaires

  • Question
Microsoft 365 excel vba
Réponses
43
Affichages
5 K
Réponses
8
Affichages
998

Statistiques des forums

Discussions
312 305
Messages
2 087 083
Membres
103 458
dernier inscrit
Vulgaris workshop