[VBA] Opérations sur une série de données utilisée dans un graphique

Opérations sur une série de données utilisée dans un graphique [VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 23-08-2006 à 12:46:27    

Bonjour à tous,
 
j'utilise des listes déroulantes sur un graphique affichant 3 courbes qui me permettent de choisir une date de début et une date de fin, de sorte à pouvoir tracer tout ou partie de la série de données.
 
Ces données sont des valeurs exprimées en %ages, directement reprises d'une feuille de calcul du classeur.  
 
J'aimerais pouvoir faire en sorte que lorsque je choisis une nouvelle date de début pour le graphique, les valeurs utilisées pour tracer les 3 courbes soient "rebasées" à 100% en date initiale, sans avoir pour autant à passer par la création d'une nouvelle série de données dans une feuille de calcul.
 
Je ne sais pas si c'est très clair mais, pour donner un exemple plus concret, imaginons que la série de données suivante serve à tracer le graphique :

date 1 2 3 4
data1 100 102 105 110
data2 100 105 108 111


 
Si je choisis de débuter le tracé du graphique en date 2, j'aimerais afficher "à la volée" (c'est à dire sans placer cette série de données dans une feuille de calcul) quelque chose qui corresponde à la série :

date 2 3 4
data1 100 103 108
data2 100 103 106


(ie. % par rapport à la date 2)
 
Quelqu'un aurait-il une idée de la façon dont je pourrais procéder ? Dans le principe, cela paraît simple (caler les valeurs en date début à 100%, et pour les autres, effectuer la division par la valeur de la date correspondante de la série originale), mais n'étant pas un pro du VBA, je n'ai pas su trouver de solution. Peut-être n'est-ce d'ailleurs pas possible, mais je suis preneur de toute astuce ou conseil.
 
Merci d'avance !

Reply

Marsh Posté le 23-08-2006 à 12:46:27   

Reply

Marsh Posté le 26-08-2006 à 02:48:21    

je te propose de faire une macro qui te gère, en fonction de la premiere date, une mise à jour des formula de cellules suivantes:
exemple
date 1 2 3 4
data1 100 102 105 110
data2 100 105 108 111
comme tu sélectionnes la date 1, tu le mets dans une cellule (exemple avec (10,10), d'où cells(10,10).value = B)
et tu lances la procedure avec  
for i = 2 to 5
for j = 2 to 5
cells(i,j).formula="=....
next j
next i
 
tu comprends l'idée ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed