Graphe Camembert avec les OWC.ChChart

dubail Messages postés 13 Date d'inscription jeudi 4 mai 2006 Statut Membre Dernière intervention 5 septembre 2006 - 3 juil. 2006 à 14:05
michelxld Messages postés 402 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 12 octobre 2008 - 6 juil. 2006 à 17:22
Bonjour,

J'ai tracé un graphe Camembert dans le Chartspace de mon Userform et je ne réussis pas à choisir la couleur de mes différents espaces. Quelqu'un saurait comment éviter que les couleurs soient déterminées automatiquement??


De plus, j 'ai besoin d'afficher des étiquettes sur ce graphe. J'y arrive mais lorsque certaines zones sont nulles ou très fines, les étiquettes se superposent, ce qui devient illisible. J'ai vu qu'il y avait une propriété Position pour les Datalabels, mais il n'y a que les modes automatique ou centré qui fonctionne!


Quelqu'un aurait il une idée??


Merci


Eléonore








 

11 réponses

michelxld Messages postés 402 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 12 octobre 2008 32
3 juil. 2006 à 17:45
bonjour Eleonore

j'espere que cet exemple pourra t'aider

Dim Cht As OWC.WCChart
Dim Plage(6), Tableau(6)
Dim i As Byte


Set Cht = ChartSpace1.Charts.Add


With Cht
    .Type = chChartTypePieExploded
    .HasLegend = True 'permet l'affichage des légendes
    .Legend.Position = chLegendPositionRight 'afichage des légendes
   
    .HasTitle = True
    .Title.Caption = "Mon graphique"
    .Title.Font.Color = RGB(0, 0, 255)
    .Title.Font.Underline = True
    .Title.Font.Bold = True
    .Title.Font.Size = 14
    .Title.Position = chTitlePositionTop
End With


For i = 1 To 6
Plage(i) = Int((50 * Rnd) + 1) 'Ordonnées
Tableau(i) = 2000 + i 'Abscisses
Next i
      
With Cht
.SetData chDimCategories, chDataLiteral, Tableau
.SeriesCollection(0).SetData chDimValues, chDataLiteral, Plage
End With
       
Cht.SeriesCollection(0).DataLabelsCollection.Add
'Cht.SeriesCollection(0).DataLabelsCollection.Item(0).Position = chLabelPositionOutsideBase


'-------parametrage couleurs ------
For i = 0 To Cht.SeriesCollection(0).Points.Count - 1
Cht.SeriesCollection(0).Points.Item(i).Interior.Color = 500 * i
Next i

bonne soiree
michel
0
dubail Messages postés 13 Date d'inscription jeudi 4 mai 2006 Statut Membre Dernière intervention 5 septembre 2006
3 juil. 2006 à 18:52
Merci beaucoup, mon problème de couleur est résolu!

Par contre, la phrase :
Cht.SeriesCollection(0).DataLabelsCollection.Item(0).Position = chLabelPositionOutsideBase
me donne une erreur "Paramètre non valide"
Du coup, j 'ai toujours mes étiquettes qui se superposent. je ne peux les mettre nulle part ailleurs qu'au centre des espaces de mon camembert. Je ne comprends pas!!


 
0
kammegg Messages postés 73 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 7 août 2006 1
4 juil. 2006 à 18:55
salut dubail
 là tu viens de demander l'aide. alors c'est moi qui va te le demander mnt.
pour toi t'arrive déjà à tracer ton graphe, alors que moi j'arrive pas à le faire.
j'ai partout cherché de la documention concernant la creation des graphes avec VS2003 sans aucune résultat. j'ai aucune idée et aucune notion à propos de la création des graphes.

si tu veux bien m'aider, je veux bien créer des graphes à partir des données stockées dans ma BD Access. je serai très reconnaissant, car j'ai posé cette question dans pas mal de forum sans réponse.
et merci d'avance.
0
dubail Messages postés 13 Date d'inscription jeudi 4 mai 2006 Statut Membre Dernière intervention 5 septembre 2006
4 juil. 2006 à 19:01
Je ne sais pas si c est la meme chose que pour toi car mes données ne viennent pas d access. et je ne sais pas ce qu'est VS2003 ??
Est ce que tu utilises les OWC11.chChart??
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kammegg Messages postés 73 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 7 août 2006 1
4 juil. 2006 à 19:06
VS2003 c'est :Visual Studio 2003.
j'utilise VB.Net 2003.  pour access ce n'est un problème, on peut mettre les données dans une lisbox par exemple, et lire les données à partir de cette listbox.

pour toi, tu travailles avec quel outil ?
0
dubail Messages postés 13 Date d'inscription jeudi 4 mai 2006 Statut Membre Dernière intervention 5 septembre 2006
4 juil. 2006 à 19:11
Je travaille en Visual Basic appliqué à Excel.
je te donne un exemple de code que quelqu'un m'a donné sur ce forum, qui marchera si tu as les Office Web Components.

Private Sub CommandButton1_Click()
    Dim chConstants
    Dim chtNewChart
    Dim Nom(1)
    Dim XV(40)
    Dim YV(40)
    Dim i As Integer


    Nom(0) = "TEST PH"


    For i = 0 To 39
    'XV(i) = 2 * (i - 20)
    XV(i) = i
    'YV(i) = courb(XV(i))
    YV(i) = i
    Next
   
    Set chConstants = ChartSpace1.Constants


    ' Add a new chart to Chartspace1.
    Set chtNewChart = ChartSpace1.Charts.Add


    ' Specify that the chart is a column chart.
    chtNewChart.Type = chConstants.chChartTypeScatterLine


    ' Bind the chart to the arrays.
    chtNewChart.SetData chConstants.chDimSeriesNames, chConstants.chDataLiteral, Nom
    chtNewChart.SeriesCollection(0).SetData chConstants.chDimXValues, chConstants.chDataLiteral, XV
    chtNewChart.SeriesCollection(0).SetData chConstants.chDimYValues, chConstants.chDataLiteral, YV
End Sub


Function courb(x)
    courb = 3 * x ^ 3 - (15 * x + 30) ^ 2 + x - 105
End Function
0
kammegg Messages postés 73 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 7 août 2006 1
4 juil. 2006 à 19:13
ok je vais essayer ce code

je te remercie
0
kammegg Messages postés 73 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 7 août 2006 1
4 juil. 2006 à 19:21
je pense que je dois importer des classes dans la partie général, car le ChartSpace1
 n'est déclaré.

quelles sont ces classes ?
0
dubail Messages postés 13 Date d'inscription jeudi 4 mai 2006 Statut Membre Dernière intervention 5 septembre 2006
5 juil. 2006 à 11:29
Je suis désolée mais je ne vois pas de quelle classes tu parles.
Est ce que tu as un Useform? parce que c est dedans qu'est mon ChartSparce1.
0
kammegg Messages postés 73 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 7 août 2006 1
6 juil. 2006 à 00:33
pour le code que tu m'as donné le " ChartSpace1 " n'est pas déclaré.
0
michelxld Messages postés 402 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 12 octobre 2008 32
6 juil. 2006 à 17:22
bonjour

ChartSpace est un objet que tu inseres dans ta oite de dialogue :

Le complément Microsoft Office Web Components (Composants Web) est une collection de contrôles pour modèles d'objets composants (Component Object Model ou COM) permettant de publier sur le Web des feuilles de calcul, des graphiques et des bases de données.

http://www.microsoft.com/downloads/details.aspx?displaylang=fr&FamilyID=7287252C-402E-4F72-97A5-E0FD290D4B76

http://www.microsoft.com/downloads/details.aspx?FamilyID=982b0359-0a86-4fb2-a7ee-5f3a499515dd&displaylang=en#affinity

bonne soiree
michel
0
Rejoignez-nous