Pb récupération de la valeur d'un point dans un graphique

Résolu
VBACripteur -  
 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

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    0
    1. VBACripteur
       
      Bonjour,

      Je viens d'essayer Valeur = CSng(.DataLabel.Characters.Text) et j'ai exactement le même problème.
      0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
      0
    3. VBACripteur
       
      Voilà le lien http://cjoint.com/?BLkp7OfthEY

      En espérant que cela aidera.

      Config: W7 et excel 2010
      0
    4. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
      0
    5. VBACripteur
       
      Désolé eriiic , voici le nouveau lien avec le code "light".

      http://cjoint.com/?BLlpvYdKs0T

      En espérant que ça aidera cette fois :-)
      0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    0
    1. VBACripteur
       
      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
      0