Graphique en VBA

StrikeBEH

XLDnaute Occasionnel
Bonsoir à tous,

J'ai essayé de créer un graphique via l'enregistreur de macros, mais il me rajoute plein de lignes sans trop savoir à quoi cela correspond...

Je vous explique ce que je souhaiterai.

Sur la feuille "récap" j'ai les données suivantes:

J4 à K4 contiennent respectivement les valeurs "Crédit", "Débit" et "Solde".

J6 à K6 contiennent respectivement les valeurs correspondantes pour J4 à J6.

Avec ces données je voudrai donc créer un graphique de base...

Merci pour votre aide
 

Gardien de phare

XLDnaute Accro
Re : Graphique en VBA

Bonsoir,
Bien, il te reste à :
  • mettre un classeur avec des données, histoire qu'on ait pas à le faire ;
  • nous dire ce qu'est pour toi un graphique "de base" ;
  • nous expliquer pourquoi tu veux passer par Vba.
Avec tout ça, on devrait pouvoir te faire des propositions...
 

StrikeBEH

XLDnaute Occasionnel
Re : Graphique en VBA

Bonjour,
En fait c'est un programme de gestion de compte bancaire.
Le premier de chaque mois, une nouvelle feuille est crée pour le mois en cours et je souhaiterai qu'un graphique soit généré automatiquement prenant en compte les données de J6 à L6. Voila pourquoi je veux passer par VBA.
J'entends par graphique de base, un graphique dans son plus simple élément... j'adapterai l'apparence à ma sauce par la suite.

Je joins un "aperçu" et pour le graph, je l'ai fait à la main pour "tester", sans aucun code VBA...
 

Pièces jointes

  • Test.docx
    184.3 KB · Affichages: 40
  • Test.docx
    184.3 KB · Affichages: 44
  • Test.docx
    184.3 KB · Affichages: 52

StrikeBEH

XLDnaute Occasionnel
Re : Graphique en VBA

C'est bon, avec l'aide de l'enregistreur de macros et après de multiples essais, j'ai finalement réussi à faire ce que je voulais !!!
Le seul "détail" que je souhaite rajouter c'est "TOTAUX" comme "titre" pour le graphique...
Pourtant le nom apparaiît bien dans le code mais étrangemnt il ne s'affiche pas !
Mais je vais bien trouver !!! ;)

Le code:

Code:
Option Explicit

Sub Graph1()
ActiveSheet.Shapes.AddChart.Select
ActiveSheet.ChartObjects(1).Name = "Graph1"
ActiveSheet.ChartObjects(1).Top = 126
ActiveSheet.ChartObjects(1).Left = 453
ActiveSheet.ChartObjects(1).Height = 250
ActiveSheet.ChartObjects(1).Width = 250
ActiveSheet.ChartObjects("Graph1").Activate
ActiveChart.ChartType = xlDoughnutExploded
ActiveChart.ClearToMatchStyle
ActiveChart.ChartStyle = 26
ActiveChart.ClearToMatchStyle
ActiveChart.SetSourceData Source:=Range("J4:L6")
ActiveSheet.ChartObjects("Graph1").Activate
ActiveChart.SeriesCollection(1).Select
ActiveChart.SeriesCollection(1).Name = "=""TOTAUX"""
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Range("J4:L4,J6:L6")
ActiveChart.ChartArea.Select
With ActiveSheet.Shapes("Graph1").Fill
    .Visible = msoTrue
    .ForeColor.ObjectThemeColor = msoThemeColorAccent1
    .ForeColor.TintAndShade = 0.3399999738
    .ForeColor.Brightness = 0
    .BackColor.ObjectThemeColor = msoThemeColorAccent1
    .BackColor.TintAndShade = 0.7649999857
    .BackColor.Brightness = 0
    .TwoColorGradient msoGradientHorizontal, 1
End With
Selection.Format.Fill.Visible = msoTrue
End Sub
 

StrikeBEH

XLDnaute Occasionnel
Re : Graphique en VBA

J'ai trouvé...

Code modifié:

Code:
Option Explicit

Sub Graph1()
ActiveSheet.Shapes.AddChart.Select
With ActiveChart
    .HasTitle = True
    .ChartTitle.Characters.Text = "TOTAUX"
End With
ActiveSheet.ChartObjects(1).Name = "Graph1"
ActiveSheet.ChartObjects(1).Top = 126
ActiveSheet.ChartObjects(1).Left = 453
ActiveSheet.ChartObjects(1).Height = 250
ActiveSheet.ChartObjects(1).Width = 250
ActiveSheet.ChartObjects("Graph1").Activate
ActiveChart.ChartType = xlDoughnutExploded
ActiveChart.ClearToMatchStyle
ActiveChart.ChartStyle = 26
ActiveChart.ClearToMatchStyle
ActiveChart.SetSourceData Source:=Range("J4:L6")
ActiveSheet.ChartObjects("Graph1").Activate
ActiveChart.SeriesCollection(1).Select
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Range("J4:L4,J6:L6")
ActiveChart.ChartArea.Select
With ActiveSheet.Shapes("Graph1").Fill
    .Visible = msoTrue
    .ForeColor.ObjectThemeColor = msoThemeColorAccent1
    .ForeColor.TintAndShade = 0.3399999738
    .ForeColor.Brightness = 0
    .BackColor.ObjectThemeColor = msoThemeColorAccent1
    .BackColor.TintAndShade = 0.7649999857
    .BackColor.Brightness = 0
    .TwoColorGradient msoGradientHorizontal, 1
End With
Selection.Format.Fill.Visible = msoTrue
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 238
Messages
2 086 491
Membres
103 234
dernier inscrit
matteo75654548