Bonjour à tous,
J'aime bien la programmation mais j'avoue que je ne suis pas dans le VBA depuis longtemps, ce n'est pas ce que je préfère et je le fais un peu parce que je suis obligé, donc désolé si mon amateurisme en la matière peut surprendre !
Pour un projet, je dois créer un outil et dans cet outil, j'ai créé un certain nombre d'UserForm pour accéder à différentes informations, pour réaliser certains traitements. Jusque là, rien de très difficile. Mais là, j'ai un peu du mal sur mes dernières tentatives. Je souhaite intégrer dans un UserForm des graphiques dynamiques, qui se modifient en fonction des différentes infos que j'ai rentré. Après avoir fouillé un peu le net, j'ai réussi à le faire difficilement. Voilà le résultat :
Depuis le début, mes plus grandes difficultés résident dans la manipulation des séries de données. Pour mon premier graphique, les données sont présentes sur mon tableur donc j'ai réussi à les récupérer et à faire fonctionner le tout, mais maintenant je veux créer un graphique à partir de données obtenues par traitement. Ces données sont placées dans un tableau, et lorsque je veux les assigner à une SeriesCollection.Values, ça ne marche pas ! Aucun message d'erreur, il me met juste toutes les valeurs à 0 alors qu'elles ne sont pas nulles dans mon tableau, ce que j'ai bien vérifié en exécutant le programme ligne par ligne. Quoi que je fasse, ça ne marche pas pour mon SeriesCollection.Values, mais ça marche pour mon SeriesCollection.XValues et SeriesCollection.Name.
Si joint une partie de mon code qui devrait suffire à trouver le problème :
L'ensemble des variables String, integer, en tableau ou pas, sont déclarées et leur contenu est bon (vérifié). Aucun problème de bornes, aucun message d'erreur, juste le contenu de tmp2 (non vide, valeurs non nulles) qui n'entre pas dans ma_serie.Values (valeurs toutes nulles).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 Set CurrentChart = Sheets("BDD").ChartObjects(1).Chart ' Je réinitialise mon graphique Do Until CurrentChart.SeriesCollection.Count = 0 CurrentChart.SeriesCollection(1).Delete Loop '[....] Set ma_serie = CurrentChart.SeriesCollection.NewSeries ma_serie.Name = "=PIC!$C$" & l + 1 ma_serie.XValues = plage() For k = 0 To 14 tmp = Split(tableau(typ, k, 2), ";") tmp2(k) = tmp(0) Next ma_serie.Values = tmp2 compteur = compteur + 1
Si quelqu'un a une solution au problème, ou s'il y a besoin d'informations supplémentaires, n'hésitez pas ...
Merci d'avance !
Albabs.
Partager