Pb récupération de la valeur d'un point dans un graphique [Résolu/Fermé]

Signaler
-
 VBACripteur -
Bonjour,


Je souhaite récupérer certaines valeur dans un graphique nommé "Graphique L14" de type histogramme; pour cela, j'utilise la sub suivante:

Sub pointsGraph()
Dim Valeur As Single

With Sheets("Feuil1").ChartObjects("Graphique L14").Chart.SeriesCollection(1).Points(2)
.HasDataLabel = True 'affiche la valeur du point dans le graphique
Valeur = .DataLabel.Characters.Text 'recupere la valeur du point dans une variable
.HasDataLabel = False 'ne plus afficher la valeur du point
End With
MsgBox Valeur

End Sub

j'ai le message d'erreur "Erreur 13 : incompatibilité de type".
Quand j'execute en "F5" et que je clique sur "Débogage", c'est la ligne en gras qui semble poser pb.

Si j'execute toute la sub en pas à pas, je n'ai pas de message d'erreur.

Quelqu'un a-t-il une piste ?

2 réponses

Messages postés
24111
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
20 juin 2021
6 810
Bonjour,

ça m'étonne que tu n'aies pas d'erreur en pas à pas.
Valeur est Single et tu y mets un texte...
essaie avec :
Valeur = CSng(.DataLabel.Characters.Text)

eric
Bonjour,

Je viens d'essayer Valeur = CSng(.DataLabel.Characters.Text) et j'ai exactement le même problème.
Messages postés
24111
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
20 juin 2021
6 810
Peut-être qu'avec un fichier exemple on pourra chercher.
Déposer le fichier xls (réduit au nécessaire et anonymisé) sur cjoint.com et coller ici le lien fourni.
eric
Voilà le lien http://cjoint.com/?BLkp7OfthEY

En espérant que cela aidera.

Config: W7 et excel 2010
Messages postés
24111
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
20 juin 2021
6 810
non, ça n'aide pas.
J'avais dit : réduit au nécessaire
C'est à dire avec un graphique déjà créé et juste les lignes de codes indispensables (pas 1500 lignes comme ici + appel à des fichiers extérieurs qui font tout planter)

eric
Désolé eriiic , voici le nouveau lien avec le code "light".

http://cjoint.com/?BLlpvYdKs0T

En espérant que ça aidera cette fois :-)
Messages postés
24111
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
20 juin 2021
6 810
Bonjour,

C'est mieux oui ;-)
Valeur = CSng(.DataLabel.Text)

Mais pourquoi ne pas récupérer la valeur directement dans la table des données ?

eric
Ca y est ça fonctionne avec Valeur = CSng(.DataLabel.Text)

Je ne récupère pas directement les valeurs car historiquement j'ai créée 1 graph, puis 2 puis...10 et c'est seulement après que j'ai ajouté un tas de calculs sur un mois, 3 mois, en combinant des graphs, etc...
Les données sont "téléchargées" à partir de différents fichiers sur un serveur annexe.
Elle ne sont donc pas présentes dans mon fichier ailleurs que dans les graphs.

VBACripteur