CREZ59
Messages postés15Date d'inscriptiondimanche 16 juillet 2006StatutMembreDernière intervention 1 août 2007
-
22 août 2006 à 09:28
CREZ59
Messages postés15Date d'inscriptiondimanche 16 juillet 2006StatutMembreDernière intervention 1 août 2007
-
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);
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.
CREZ59
Messages postés15Date d'inscriptiondimanche 16 juillet 2006StatutMembreDernière intervention 1 août 20071 22 août 2006 à 11:28
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;
}