Mise en forme d'un graphique Excel via c# [Résolu]

CREZ59 15 Messages postés dimanche 16 juillet 2006Date d'inscription 1 août 2007 Dernière intervention - 22 août 2006 à 09:28 - Dernière réponse : CREZ59 15 Messages postés dimanche 16 juillet 2006Date d'inscription 1 août 2007 Dernière intervention
- 22 août 2006 à 11:28
Bonjour à tous,
Je rencontre un soucis au moment où je modifier les couleurs de mes series dans un graphique que je génére dans Excel via C#.
Je code ci dessous montre comment j'ajoute un graphique dans mon classeur.
Mais après cela je n'arrive pas à changer les couleurs des series.



//Insertion d'une nouvelle feuille avec un graphique
_Chart Graphe = (_Chart)Classeur.Sheets.Add(Classeur.Sheets[2],oMissing,1,XlWBATemplate.xlWBATChart);



//Propriétés du Graphique
Graphe.ChartType = XlChartType.xl3DPie;
Graphe.Elevation = 45;
Graphe.SetSourceData(Feuille.get_Range(cellDepart, cellFin),XlRowCol.xlRows);
Graphe.ChartTitle.Caption = titreGraphique;
Graphe._ApplyDataLabels (XlDataLabelsType.xlDataLabelsShowValue,false,true,true);


j'ai essayer un certains nombre de choses comme par exemple:



Series serieP = (Series)Graphe.SeriesCollection(1);
serieP.Interior.Color = "#00ff00";


ou autre choses du même style j'ai toujours l'erreur:



"System.Runtime.InteropServices.COMException (0x800A03EC): Exception de HRESULT : 0x800A03EC. at Microsoft.Office.Interop.Excel._Chart.SeriesCollection(Object Index)..."


Je ne sais plus quoi essayer. Je recherche de l'aide.


Amicalement,
Christophe.
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
CREZ59 15 Messages postés dimanche 16 juillet 2006Date d'inscription 1 août 2007 Dernière intervention - 22 août 2006 à 11:28
3
Merci
Merci pour ta réponse mais j'ai trouvé le soucis, en fait il y avait 2 erreurs:

- la première est effectivement les couleurs en int et tu peux aller au de làs de 16 car j'utilise le ColorIndex
- la 2eme : 
   le bout de code utiliser est en fait:
      for(int i= 1;i<nbreCol-1;i++)
      {
          Series serieP = (Series)Graphe.SeriesCollection(i);
          serieP.Interior.ColorIndex = Convert.ToInt32(couleurSeries[i]);
          serieP.Border.ColorIndex = 1;
          serieP.Border.Weight = 2;
      }
Bizarement la ligne " Series serieP = (Series)Graphe.SeriesCollection(i); "me causé l'erreur alors que si je met en dur 1 a la place de i cela fonctionne.
alors j'ai tranformer mon code comme si dessous en démarrant le i à 0 et en mettant "1+i".
      for(int i =0;i<nbreCol-1;i++)
      {
          Series serieP = (Series)Graphe.SeriesCollection(1+i);
          serieP.Interior.ColorIndex = Convert.ToInt32(couleurSeries[i]);
          serieP.Border.ColorIndex = 1;
          serieP.Border.Weight = 2;
      }

et là sa fonctionne.
-------------
Amicalement,

Christophe.

Merci CREZ59 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de CREZ59
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 22 août 2006 à 11:18
0
Merci
si mes souvenirs sont bons... il me semble que les couleurs ne sont que des int allant de 0 (1?) à 16.

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Commenter la réponse de sebmafate

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.