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

VB.NET Discussion :

Creation Graph Excel : pb avec SeriesCollection(1).Values


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de lolymeupy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2006
    Messages : 402
    Par défaut Creation Graph Excel : pb avec SeriesCollection(1).Values
    Salut,
    J'esssaye de creer un graphe (Courbes) en vb.net et je galère () sur la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    appExcel1.ActiveChart.SeriesCollection(1).Values = "=Graphes!R1C2:R23C2"
    Le message d'erreur est le suivant :
    Impossible de définir la propriété Values de la classe Series
    Pour info, voici 1 partie du bloc de code concerné :
    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
     
    ...
    sRange = xlSheet1.Cells(iPosInitMO, 1).Address() & ":" & xlSheet1.Cells(iPosFinPresta, 3).Address()
    sRange = Replace(sRange, "$", "")
    appExcel1.Range(sRange).Select()
    appExcel1.Charts.Add()
    appExcel1.ActiveChart.Name = sNomGraphe
    appExcel1.Charts(sNomGraphe).ChartType = Excel.XlChartType.xlLineMarkers
    appExcel1.ActiveChart.SetSourceData(Source:=xlSheet1.Range(sRange), PlotBy:=Excel.XlRowCol.xlColumns)
    appExcel1.ActiveChart.SeriesCollection.NewSeries()
    sTemp = "=Graphes!" & "R" & iPosInitMO & "C2:" & "R" & iPosFinMO & "C2"
    appExcel1.ActiveChart.SeriesCollection(1).Name = "=""MO"""
    appExcel1.ActiveChart.SeriesCollection(1).Values = sTemp 
    sTemp = "=Graphes!" & "R" & iPosInitMO & "C3:" & "R" & iPosFinMO & "C3"
    appExcel1.ActiveChart.SeriesCollection(2).Values = sTemp
    appExcel1.ActiveChart.SeriesCollection(2).Name = "=""Limite MO"""
    sTemp = "=Graphes!" & "R" & iPosInitPresta & "C2:" & "R" & iPosFinPresta & "C2"
    appExcel1.ActiveChart.SeriesCollection(3).Values = sTemp
    appExcel1.ActiveChart.SeriesCollection(3).Name = "=""Presta"""
    sTemp = "=Graphes!" & "R" & iPosInitPresta & "C3:" & "R" & iPosFinPresta & "C3"
    ...
    Je précise que la ligne juste avant la ligne qui plante passe sans problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    appExcel1.ActiveChart.SeriesCollection(1).Name = "=""MO"""
    Je pensais que la propriété Values n'existait pas en .net pour SeriesCollection (existe en VB car code issue d'une macro dans Excel) mais dans la msdn, la propriété Name n'existe apparement pas non plus ?
    (http://msdn.microsoft.com/fr-fr/libr...rs(VS.80).aspx)

    Voilà, donc après moults recherches (infructueuses evidement) j'éspère que quelqu'un ici pourra m'aider...
    Merci d'avance

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Par défaut
    Salut,
    SeriesCollection est... une collection (je sais, je sais... ), autrement dit, ce type propose des méthodes de type ensembliste (add, count...).
    Chaque item de cette collection est de type Series
    Les méthodes proposées par ce type se trouvent ici : http://msdn.microsoft.com/fr-fr/libr...ffice.11).aspx

    Y figurent les propriétés Name et Values.
    Cette dernière est peut être mal renseignée ou peut être as-tu une version d'excel interop différente (plus ancienne) de celle qui est sur le lien MSDN...

  3. #3
    Membre éclairé Avatar de lolymeupy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2006
    Messages : 402
    Par défaut
    Merci de ton aide Nikoko34
    Par contre, j'avoue que je ne sais pas comment utiliser tes infos...

    J'ai essayé en modifiant comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    appExcel1.ActiveChart.Series.NewSeries()
    appExcel1.ActiveChart.Series(1).Name = "=""MO"""
    appExcel1.ActiveChart.Series(1).Values = sTemp
    mais il me dit que Le membre public 'Series' du type 'Chart' est introuvable

    De +, pour les lignes suivantes il n'y avait pas de problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    appExcel1.ActiveChart.SeriesCollection.NewSeries()
    appExcel1.ActiveChart.SeriesCollection(1).Name = "=""MO"""
    Le pb était sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    appExcel1.ActiveChart.SeriesCollection(1).Values = "=Graphes!R1C2:R23C2"
    En fait je mettais la valeur dans une variable de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sTemp = "=Graphes!" & "R" & iPosInitMO & "C2:" & "R" & iPosFinMO & "C2"
    appExcel1.ActiveChart.SeriesCollection(1).Values = sTemp
    Mais en fouinant sur le net, j'ai vu des exemples (en VB et pas .net malheureusement) où la variable utilisée était de type Range, ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim sTemp as Excel.range
    sTemp = xlSheet1.Range(xlSheet1.Cells(iPosInitMO, 2).address(), xlSheet1.Cells(iPosFinMO, 2).address())
    ...
    appExcel1.ActiveChart.SeriesCollection(1).Values = sTemp
    Mais il me mets le message d'erreur suivant :
    Le type ne correspond pas. (Exception de HRESULT : 0x80020005 (DISP_E_TYPEMISMATCH))


    J'avoue être un peu (bcp)perdu sur le sujet.
    Si tu pouvais m'éclairer encore un peu + stp...

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 299
    Par défaut
    Est ce que par hasard ton chart ne serait-il pas un pivot chart ?
    Car MSDN dit à propos de la propriété Values, que
    For PivotChart reports, this property is read-only.

  5. #5
    Membre éclairé Avatar de lolymeupy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2006
    Messages : 402
    Par défaut
    je t'avoue que j'étais tombé la dessus en recherchant des solutions sur le net, mais sans trop y faire y gaffe...sans doute parce que je ne sais pas quels graphes sont dans la catégorie Pivot Charts ?!
    Ce que j'utilise c'est 1 graphique de "courbes" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    appExcel1.Charts(sNomGraphe).ChartType = Excel.XlChartType.xlLineMarkers
    Sachant que je peux utiliser la propriété Name sans problème, peut-être que le problème viendrais de là effectivement...

  6. #6
    Membre éclairé Avatar de lolymeupy
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2006
    Messages : 402
    Par défaut
    Comme je ne sais pas trop comment determiner si mon Chart est 1 PivotChart ou pas, j'ai testé de lire plutot que d'écrire la valeur "values" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim sTemp as system.object           'si je mets Excel.Range ça plante
    sTemp =  = appExcel1.ActiveChart.SeriesCollection(1).Values
    Il me retourne 1 system.array avec toutes les valeurs selectionnées lors de la création du graphique...
    Je sais qu'il y +sieurs possibilités de Graphique de Courbes, mais même en essayant d'autres versions de graph de courbes, le résultat du code obtenu (en macro) me donne 1 chart de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    appExcel1.Charts(sNomGraphe).ChartType = Excel.XlChartType.xlLineMarkers
    ce qui ne change donc rien à mon problème...


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

Discussions similaires

  1. [XL-2003] Graphiques - Pb avec .SeriesCollection.Values (renvoi du vide)
    Par popsmelove dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/07/2012, 10h42
  2. problème creation graphe avec un fichier txt
    Par ALeX850 dans le forum Débuter
    Réponses: 8
    Dernier message: 24/02/2010, 12h08
  3. [VBA] Graph Excel avec données en X et Y
    Par thierry-69007 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 01/04/2008, 22h01
  4. [VB6] création graphes Excel à 2 axes
    Par getea85 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 24/04/2006, 09h48
  5. [VBA-E] avec une fonction value
    Par laas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/11/2002, 13h22

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