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 :

Nom : Capture.PNG
Affichages : 789
Taille : 34,6 Ko

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 :

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
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).

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.