IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants VCL Delphi Discussion :

Modifier les valeurs d'une série d'un graphique inséré dans un fichier Word


Sujet :

Composants VCL Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 13
    Points : 18
    Points
    18
    Par défaut Modifier les valeurs d'une série d'un graphique inséré dans un fichier Word
    Bonjour,

    Je cherche à remplir une série de données d'un graphique existant dans un document Word, avec Delphi.

    Il s'agit d'un souci sur l'usage du composant TWordApplication ainsi que sur l'usage de l'OLE Chart.
    Sous Delphi 6 pro, TwordApplication étant un composant de l'onglet Serveurs.

    Première constatation, le composant TWordApplication de l'unité Word2000 ne possède pas d'objet Chart.
    J'utilise donc un OleVariant pour manipuler l'objet Chart.

    J'ai nommé l'objet Chart, graph :
    i étant l'index du graphique en question.
    Self._Doc étant le document Word, de type _Document
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    graph := Self._Doc.InlineShapes.Item(i);
    J'ai nommé l'objet Serie, serie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    serie := graph.Chart.SeriesCollection.Item(1);
    Je peux modifier le nom de la série et ses paramètres sans soucis (Je retrouve bien les modifs dans mon document Word) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    serie.Name := 'Valeur de phi'; // Nom de la série.
    serie.Smooth := True;  // Rend la courbe de la série lisse.
    Seulement j'ignore comment modifier les valeurs de la série.
    En me basant sur MSDN :
    Pour affecter une constante à chaque point de données, vous devez utiliser un tableau.
    VBA
    Charts("Chart1").SeriesCollection(1).Values = _
    Array(1, 3, 5, 7, 11, 13, 17, 19)
    J'essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    serie.Values := VarArrayOf([1.5, 2, 3]);
    Le série du graphique disparaît, donc plus de valeurs.

    Si j'essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    serie.Values := '=Feuil1!$B$2:$B$3';
    Là, la série utilise 2 points de valeurs (Case B2 et B3) des données déjà renseignées dans le graphique.
    Ca marche trés bien, mais je veux plutôt Modifier/ajouter des valeurs.

    Avez-vous une solution pour remplir la série avec des données?
    Merci par avance.

  2. #2
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Bonjour,

    A priori il y a deux possibilités pour définir une série soit avec un tableau de constante (reste à transposer l'exemple VBA) Ou utiliser une feuille excel.

    J'essayerai la seconde option et pour modifier les valeurs j'essayerai de trouver l'objet worksheets
    Cellule C5 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Feuille1").Cells(5, 3)
    Bonnes recherches

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 13
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par Barbibulle Voir le message
    Bonjour,

    A priori il y a deux possibilités pour définir une série soit avec un tableau de constante (reste à transposer l'exemple VBA) Ou utiliser une feuille excel.

    J'essayerai la seconde option et pour modifier les valeurs j'essayerai de trouver l'objet worksheets
    Cellule C5 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Feuille1").Cells(5, 3)
    Bonnes recherches
    Bonjour,

    Je viens donner un résumé de mes recherches !

    En me basant sur ta suggestion, j'ai essayé de modifier une valeur de la série par ceci :
    (Pour les passants : La première ligne contient les titres et la deuxième colonne contient les données de la série. graph représentant un objet InlineShape)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    graph.Chart.ChartData.WorkBook.Sheets[1].Cells[2,2] := 666;
    Hé bien ça fonctionne

    Merci à toi et à l'attention des lecteurs.

  4. #4
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Bravo !

    Le plus dur c'est de trouver le bon chemin

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 13
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par Barbibulle Voir le message
    Bravo !

    Le plus dur c'est de trouver le bon chemin
    Je dirais que le plus dur c'est de percevoir correctement le chemin sur lequel on avance.
    Une fois ceci fait, on avance naturellement vers la bonne direction

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/04/2014, 15h17
  2. Réponses: 6
    Dernier message: 14/09/2012, 20h29
  3. Réponses: 3
    Dernier message: 07/04/2011, 09h08
  4. Réponses: 5
    Dernier message: 27/04/2010, 14h55
  5. Modifier la couleur d'une série d'un graphique
    Par Berzerk_ dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/01/2010, 09h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo