[VBA Excel] Mise en forme graphique
cameleon33
Messages postés
635
Date d'inscription
Statut
Membre
Dernière intervention
-
djjilou -
djjilou -
Bonjour,
J'ai des graphiques qui se créent à l'aide d'une macro Excel. Cependant, j'aimerais pouvoir mettre certains éléments de mise en forme particuliers.
Notamment : J'ai des lignes de points et je voudrais rajouter une ombre
J'ai des colonnes où je voudrais rajouter un biseau de type cercle. J'ai vu dans l'aide qu'il fallait mettre pour cela ThreeDFormat = msoBevelCircle
Cependant je ne connais pas la synthaxe.
Et les capture d'écran de ce que j'ai obtenu pour le moment :
http://www.upix.fr/images/6mnaftsh4iwu2dna55o.jpg
Et ce que je veux obtenir :
http://www.upix.fr/images/x99rls55ds09imavnavb.jpg
Petite précision : Je travaille avec Excel 2007
Info : Voici le code actuel de création des graphiques :
Range("A1").Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlLineMarkers
ActiveChart.ChartArea.Select
ActiveChart.Location Where:=xlLocationAsNewSheet
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Name = "=Données!$F$3"
ActiveChart.SeriesCollection(1).Values = "=Données!$F$" & j & ":$F$" & i - 1
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Name = "=Données!$L$3"
ActiveChart.SeriesCollection(2).Values = "=Données!$L$" & j & ":$L$" & i - 1
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(3).Values = "='Feuille calculs courbe'!$A$" & j - 2 & ":$A$" & i - 3
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(4).Values = "='Feuille calculs courbe'!$B$" & j - 2 & ":$B$" & i - 3
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(5).Values = "='Feuille calculs courbe'!$C$" & j - 2 & ":$C$" & i - 3
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(6).Name = "=Données!$N$3"
ActiveChart.SeriesCollection(6).Values = "=Données!$N$" & j & ":$N$" & i - 1
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(7).Name = "=Données!$P$3"
ActiveChart.SeriesCollection(7).Values = "=Données!$P$" & j & ":$P$" & i - 1
ActiveChart.SeriesCollection(3).ChartType = xlAreaStacked
ActiveChart.SeriesCollection(4).ChartType = xlAreaStacked
ActiveChart.SeriesCollection(5).ChartType = xlAreaStacked
ActiveChart.SeriesCollection(6).ChartType = xlColumnClustered
ActiveChart.SeriesCollection(7).ChartType = xlColumnClustered
ActiveChart.Legend.LegendEntries(3).Select
Selection.Delete
ActiveChart.Legend.LegendEntries(2).Select
Selection.Delete
ActiveChart.Legend.LegendEntries(1).Select
Selection.Delete
ActiveChart.SeriesCollection(7).AxisGroup = 2
ActiveChart.SeriesCollection(6).AxisGroup = 2
ActiveChart.SeriesCollection(6).ApplyDataLabels
ActiveChart.SeriesCollection(7).ApplyDataLabels
ActiveChart.Axes(xlValue, xlSecondary).MaximumScale = 15
ActiveChart.Axes(xlValue, xlSecondary).MinimumScale = 0
ActiveChart.SeriesCollection(3).Interior.ColorIndex = xlNone
ActiveChart.SeriesCollection(4).Interior.Color = RGB(217, 150, 148)
ActiveChart.SeriesCollection(7).Interior.Color = RGB(217, 150, 148)
ActiveChart.SeriesCollection(6).Interior.Color = RGB(195, 214, 155)
ActiveChart.SeriesCollection(5).Interior.Color = RGB(195, 214, 155)
Merci pour votre aide,
J'ai des graphiques qui se créent à l'aide d'une macro Excel. Cependant, j'aimerais pouvoir mettre certains éléments de mise en forme particuliers.
Notamment : J'ai des lignes de points et je voudrais rajouter une ombre
J'ai des colonnes où je voudrais rajouter un biseau de type cercle. J'ai vu dans l'aide qu'il fallait mettre pour cela ThreeDFormat = msoBevelCircle
Cependant je ne connais pas la synthaxe.
Et les capture d'écran de ce que j'ai obtenu pour le moment :
http://www.upix.fr/images/6mnaftsh4iwu2dna55o.jpg
Et ce que je veux obtenir :
http://www.upix.fr/images/x99rls55ds09imavnavb.jpg
Petite précision : Je travaille avec Excel 2007
Info : Voici le code actuel de création des graphiques :
Range("A1").Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlLineMarkers
ActiveChart.ChartArea.Select
ActiveChart.Location Where:=xlLocationAsNewSheet
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Name = "=Données!$F$3"
ActiveChart.SeriesCollection(1).Values = "=Données!$F$" & j & ":$F$" & i - 1
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Name = "=Données!$L$3"
ActiveChart.SeriesCollection(2).Values = "=Données!$L$" & j & ":$L$" & i - 1
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(3).Values = "='Feuille calculs courbe'!$A$" & j - 2 & ":$A$" & i - 3
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(4).Values = "='Feuille calculs courbe'!$B$" & j - 2 & ":$B$" & i - 3
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(5).Values = "='Feuille calculs courbe'!$C$" & j - 2 & ":$C$" & i - 3
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(6).Name = "=Données!$N$3"
ActiveChart.SeriesCollection(6).Values = "=Données!$N$" & j & ":$N$" & i - 1
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(7).Name = "=Données!$P$3"
ActiveChart.SeriesCollection(7).Values = "=Données!$P$" & j & ":$P$" & i - 1
ActiveChart.SeriesCollection(3).ChartType = xlAreaStacked
ActiveChart.SeriesCollection(4).ChartType = xlAreaStacked
ActiveChart.SeriesCollection(5).ChartType = xlAreaStacked
ActiveChart.SeriesCollection(6).ChartType = xlColumnClustered
ActiveChart.SeriesCollection(7).ChartType = xlColumnClustered
ActiveChart.Legend.LegendEntries(3).Select
Selection.Delete
ActiveChart.Legend.LegendEntries(2).Select
Selection.Delete
ActiveChart.Legend.LegendEntries(1).Select
Selection.Delete
ActiveChart.SeriesCollection(7).AxisGroup = 2
ActiveChart.SeriesCollection(6).AxisGroup = 2
ActiveChart.SeriesCollection(6).ApplyDataLabels
ActiveChart.SeriesCollection(7).ApplyDataLabels
ActiveChart.Axes(xlValue, xlSecondary).MaximumScale = 15
ActiveChart.Axes(xlValue, xlSecondary).MinimumScale = 0
ActiveChart.SeriesCollection(3).Interior.ColorIndex = xlNone
ActiveChart.SeriesCollection(4).Interior.Color = RGB(217, 150, 148)
ActiveChart.SeriesCollection(7).Interior.Color = RGB(217, 150, 148)
ActiveChart.SeriesCollection(6).Interior.Color = RGB(195, 214, 155)
ActiveChart.SeriesCollection(5).Interior.Color = RGB(195, 214, 155)
Merci pour votre aide,
A voir également:
- [VBA Excel] Mise en forme graphique
- Mise en forme conditionnelle excel - Guide
- Mise en forme tableau word - Guide
- Liste déroulante excel - Guide
- Changer carte graphique - Guide
- Graphique camembert excel - Guide
5 réponses
Bonjour,
Désolé de ressortir ce sujet qui a presque un an, mais je vois qu'aucune solution n'y a été apportée.
C'est parce que tu utilises Excel 2007 que ton enregistreur de macros n'affiche rien... On est obligés d'utiliser Excel 2003 !
Et il faut que tu actives l'actualisation à l'écran si jamais tu copies du code que tu as enregistré sous Excel 2003 dans Excel 2007, pour que tu sois sûr que ça marche :
Application.ScreenUpdating = True
En espérant t'avoir aidé,
@+
Désolé de ressortir ce sujet qui a presque un an, mais je vois qu'aucune solution n'y a été apportée.
C'est parce que tu utilises Excel 2007 que ton enregistreur de macros n'affiche rien... On est obligés d'utiliser Excel 2003 !
Et il faut que tu actives l'actualisation à l'écran si jamais tu copies du code que tu as enregistré sous Excel 2003 dans Excel 2007, pour que tu sois sûr que ça marche :
Application.ScreenUpdating = True
En espérant t'avoir aidé,
@+
salut,
tu as essayé la bonne veille méthode d'enregistrer des macro avec les styles que tu veux et ensuite aller piquer le code pour l'adapter à ton projet ?
moi je fais ça parceque je suis pas douée, mais des fois ça marche ...
bon courage !
tu as essayé la bonne veille méthode d'enregistrer des macro avec les styles que tu veux et ensuite aller piquer le code pour l'adapter à ton projet ?
moi je fais ça parceque je suis pas douée, mais des fois ça marche ...
bon courage !
Oui j'ai essayé, mais il enregistre pas la modification qui se fait dans une boite de propriétés... J'avais le même problème pour changer la couleur, il l'enregistrait pas en macro, mais pourtant y a bien une commande VBA pour changer la couleur. Donc je suppose que là c'est pareil ^^
Merci pour ton aide ^^
Merci pour ton aide ^^
aurais tu regarder par la ?!
http://office.microsoft.com/fr-fr/outlook/HA102118481036.aspx
Tu peux enregistrer une macro sans taper le code en faisant les manip pour obtenir ces "chanfreins", et aprés allé récupérer le code dans cette macro non?!
http://office.microsoft.com/fr-fr/outlook/HA102118481036.aspx
Tu peux enregistrer une macro sans taper le code en faisant les manip pour obtenir ces "chanfreins", et aprés allé récupérer le code dans cette macro non?!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question