Taille et couleurs standard dans une légende d'un graphique excel

la_bavaroise Messages postés 24 Date d'inscription mercredi 14 septembre 2005 Statut Membre Dernière intervention 22 novembre 2005 - 22 nov. 2005 à 10:00
Suspens91 Messages postés 2 Date d'inscription dimanche 26 juin 2005 Statut Membre Dernière intervention 10 juillet 2006 - 10 juil. 2006 à 16:30
Bonjour à tous,

en fait je me demandais si en VBA (ou tout simplement dans les options d'Excel), on pouvait attribuer une couleurs précise ainsi qu'un trait de ligne plus large que le standard à des noms bien précis de la légende. Je m'explique:
Par exemple, j'ai construit un tableau croisé dynamique qui prend en compte le changement de taux d'intéret de differentes banques en fonction du nombre de mois sur lequel s'etalle un emprunt. A partir de ce tableau, j'en ai donc fait un graphique et peux donc comparer les taux des differentes banques en fonction des mois à courir (12, 18, 24 etc).
Le probléme est qu'à chaque réactualisation du graphique, mes couleurs changent (par exemple pour la banque "Postbank", je veux tjs un trait jaune) et le trait redevient fin (alors que j'en veux un épais)

Auriez-vous une idée?

Je vous remercie d'avance,
la bavaroise.

2 réponses

Suspens91 Messages postés 2 Date d'inscription dimanche 26 juin 2005 Statut Membre Dernière intervention 10 juillet 2006
10 juil. 2006 à 14:02
Bin j'ai le même probleme que toi!
j'ai trouvé une solution pour les graphiques en baton ... ne marche pas sur les graphiques secteur (et je cherche bien sur une solution)
Dans mon exemple la macro vérifie si il existe bien un baton dons le nom d'étiquette est 0
Si ce baton existe il lui met la couleur 3
Dans le fichier que j'utilise il n'y a que 4 valeurs possible donc je teste chaqu'une de ces valeur et leurs attibue une couleur prédéfinie

==================================================
Sub Lansetestehitorique()


Application.Run "Test0"
'ici je demande de lanser Test0'
end sub

===================================================
Sub Test0()


On Error GoTo fin0
'Teste le baton'
If ActiveChart.SeriesCollection("0").Select = True Then
'si présence baton  selectionne la série et color en rouge'
ActiveChart.SeriesCollection("0").Select
    With Selection.Interior
            .ColorIndex = 3
    End With
End If
fin0:
End Sub

Je susi debutant alors je pense pas que ca  resolve ton probleme mais c'est peut ête une piste

PS: j'arrive pas a condionner la couleur de mes secteurs dans un graphique a secteur suivant l'étiquette de donner ... aider moi
0
Suspens91 Messages postés 2 Date d'inscription dimanche 26 juin 2005 Statut Membre Dernière intervention 10 juillet 2006
10 juil. 2006 à 16:30
Bon j'ai ca comme solution ... j'ai mis du temps  à la trouver et je pense qu'il y a surement mieux

0,1,2,3 étant mes etiquettes

Sub circulaire()


'je fai une boucle (4 fois) pour tester toutes les possibilités en commencant à 1 la serie 0 n existe pas'
For I = 1 To 5 Step 1
'En cas d erreur je sort de ma boucle ou si il n'y a plus que l'option (vide)
On Error GoTo fine
'J'affiche les Etiquettes'
ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowLabel, LegendKey:=False, _
        HasLeaderLines:=True
'Je selectionne l'étiquette de la 1 ere série puis la 2 eme puis la 3 eme ... grace a i '
    ActiveChart.SeriesCollection(1).DataLabels.Select
    ActiveChart.SeriesCollection(1).Points(I).DataLabel.Select
 'Je teste l'étiquette ex: si étiquette = 1 alors colorie en orange"    
           If Selection.Text = 0 Then
    ActiveChart.SeriesCollection(1).Points(I).Select
    With Selection.Interior
        .ColorIndex = 3
        .Pattern = xlSolid
    End With
    GoTo fin
   End If
   If Selection.Text = 1 Then
    ActiveChart.SeriesCollection(1).Points(I).Select
    With Selection.Interior
        .ColorIndex = 46
        .Pattern = xlSolid
    End With
    GoTo fin
   End If
  
       If Selection.Text = 2 Then
    ActiveChart.SeriesCollection(1).Points(I).Select
    With Selection.Interior
        .ColorIndex = 6
        .Pattern = xlSolid
    End With
    GoTo fin
   End If
        If Selection.Text = 3 Then
    ActiveChart.SeriesCollection(1).Points(I).Select
    With Selection.Interior
        .ColorIndex = 4
        .Pattern = xlSolid
    End With
    GoTo fin
   End If


fin:


Next

fine:
'Je remet en pourcentage
  ActiveChart.ApplyDataLabels Type:=xlDataLabelsShowPercent, LegendKey:=False _
, HasLeaderLines:=True
  
End Sub

Voila j'ai deux solutions pour deux types de graphique different... (je pense que la solution 2 est adaptable a tous les type de graphique car elle permet de passer par les Etiquettes)
PS:  Je suis fiere de moi alors ne me dite pas que c'est super nul ... je debute (10h de boulot juste pour les deux solutions)
0
Rejoignez-nous