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

MATLAB Discussion :

Tracer un graphique avec Excel [Débutant]


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 85
    Par défaut Tracer un graphique avec Excel
    Bonjour!

    Je crée ce post à la suite de l'un de mes précédents où j'étais coincé car je souhaitais créer un graphique à partir de Matlab sur Excel.

    J'ai enfin réussi à trouver quelque chose !
    Du coup voici mon code et ce qu'il me donne (image en bas) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    t=1:1:n;
    range7=sprintf('%c%d:%c%d','A'+7,5,'A'+7,4+n);
    range81=sprintf('%c%d:%c%d','A'+2,5,'A'+2,4+n);
    range82=sprintf('%c%d:%c%d','A'+3,5,'A'+3,4+n);
    Excel.Worksheets.Item(1).Range(range7).Value=t';
    XRange=Excel.Worksheets.Item(1).Range(range7).Value;
     
    Excel.ActiveWorkbook.Charts.Item(1).SeriesCollection.NewSeries;
    Excel.ActiveWorkbook.Charts.Item(1).ChartType='xlLineMarkers';
    Excel.ActiveWorkbook.Charts.Item(1).HasTitle=1;
    Excel.ActiveWorkbook.Charts.Item(1).ChartTitle.Characters.Text='Effort d écartement - Raideur ';
    Y1Range=Excel.Worksheets.Item(1).Range(range82).Value;
    Excel.ActiveWorkbook.Charts.Item(1).SeriesCollection.NewSeries.XValues=XRange;
    Excel.ActiveWorkbook.Charts.Item(1).SeriesCollection.NewSeries.Values=Y1Range;
    Le problème c'est que je ne comprend vraiment pas pourquoi est ce que j'ai 3 points de différentes couleurs alors que je ne prend qu'une seule colonne dans mon code !
    Et mon second soucis, plus important cette fois ci, lorsque j'ai plus de 10 fichiers textes (environ) mon code est en erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ??? Invoke Error, Dispatch Exception: 
    Source: Microsoft Office Excel
    Description: Impossible de définir la propriété Values de la classe Series.
    Help File: C:\Program Files\Microsoft Office\OFFICE11\1036\xlmain11.chm
    Help Context ID: 0
     
    Error in ==> Programme_calculs_handtouch at 203
    Excel.ActiveWorkbook.Charts.Item(1).SeriesCollection.NewSeries.Values=Y1Range;
    Merci !
    Images attachées Images attachées  

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2013
    Messages : 189
    Par défaut
    au risque de me planter c'est pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Excel.ActiveWorkbook.Charts.Item(1).SeriesCollection.NewSeries.YValues=Y1Range;

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 85
    Par défaut
    Citation Envoyé par Dombrai Voir le message
    au risque de me planter c'est pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Excel.ActiveWorkbook.Charts.Item(1).SeriesCollection.NewSeries.YValues=Y1Range;
    Non il n'y a pas de Y

    DUT:

    Je me suis aperçu de ça ouais
    J'ai remarqué qu'à chaque fois que j'utilisais un ".NewSeries" ça m'ajoutais une série en plus... D'où le fait que j'ai 3 séries dont une seule qui a les valeurs en Y avec la ligne 14.

    Du coup mon code donne ceci maintenant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    %Création des graph sur Charts
    range81=sprintf('%c%d:%c%d','A'+2,5,'A'+2,4+n);
    range82=sprintf('%c%d:%c%d','A'+3,5,'A'+3,4+n);
     
    Excel.ActiveWorkbook.Charts.Item(1).SizeWithWindow=1;
    Excel.ActiveWorkbook.Charts.Item(1).SeriesCollection.NewSeries;
    Excel.ActiveWorkbook.Charts.Item(1).ChartType='xlLineMarkers';
    Excel.ActiveWorkbook.Charts.Item(1).HasTitle=1;
    Excel.ActiveWorkbook.Charts.Item(1).ChartTitle.Characters.Text='Effort d écartement - Raideur ';
    Y1Range=Excel.Worksheets.Item(1).Range(range82).Value;
    Excel.ActiveWorkbook.Charts.Item(1).SeriesCollection('Série1').Values=Y1Range;
    Excel.ActiveWorkbook.Charts.Item(1).Axes(2).HasTitle=1;
    Excel.ActiveWorkbook.Charts.Item(1).Axes(2).AxisTitle.Characters.Text='Effort Max(N)';
    Excel.ActiveWorkbook.Charts.Item(1).HasLegend=0;
    J'ai cependant tjs le même soucis qui m'empêche d'avoir le graphique avec plus d'une dizaine de fichiers .txt ! Et c'est très embêtant !

    J'ai essayé de chercher dans SeriesCollection sans aucun succès. Je n'arrive pas à comprendre !

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    C'est normal, voici ce que dit la documentation d'Excel :
    Utilisez un graphique en courbes si les étiquettes des catégories comportent du texte et qu’elles représentent des valeurs régulièrement espacées, telles que les mois, les trimestres ou les années fiscales. Ce type de graphique doit surtout être utilisé dans le cas de plusieurs séries. Pour une seule série, il est préférable d’utiliser un graphique à nuages de points. Utilisez également un graphique en courbes s’il n’y a que quelques étiquettes numériques sur l’axe des catégories, surtout s’il s’agit d’années. Au-delà de dix étiquettes numériques, utilisez plutôt un graphique en nuages de points.

    Il faut donc plutôt utiliser le type de graphique xlXYScatterLines ou xlXYScatterLinesNoMarkers.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 85
    Par défaut
    Pourquoi si je le fais à la "main" ça me trace le graph dans ce cas ?

    EDIT : J'ai essayé avec "xlXYScatterLines", j'ai bien eu le même problème
    EDIT2: J'ai essayé aussi avec "xlXYScatterLinesNoMarkers", la même !

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    J'ai sans doute mal compris. Un fichier txt correspondrait à une série, c'est ça ?

  7. #7
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Tu ne peux pas utiliser NewSeries à chaque fois.

    Il faut faire simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    series = Excel.ActiveWorkbook.Charts.Item(1).SeriesCollection.NewSeries;
    series.XValues = XRange;
    series.Values = Y1Range;

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

Discussions similaires

  1. Problèmes pour tracer des graphiques avec une macro
    Par Margoooot dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/08/2011, 17h19
  2. [AC-2003] Tracer un graphique avec 2 courbes décalées
    Par guidav dans le forum IHM
    Réponses: 1
    Dernier message: 31/01/2011, 20h31
  3. Graphique avec Excel VBA
    Par Clemdu77 dans le forum Excel
    Réponses: 1
    Dernier message: 09/02/2010, 13h49
  4. Graphiques avec excel
    Par Bayard dans le forum Général Python
    Réponses: 9
    Dernier message: 07/12/2009, 19h41
  5. probleme de graphique avec excel
    Par calimero91 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/01/2006, 12h17

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