Graphique

Messages postés
165
Date d'inscription
mercredi 18 avril 2018
Statut
Membre
Dernière intervention
27 novembre 2019
- - Dernière réponse : blalaa
Messages postés
165
Date d'inscription
mercredi 18 avril 2018
Statut
Membre
Dernière intervention
27 novembre 2019
- 27 nov. 2019 à 10:19
bonjour

je suis entrain de faire une macro pour dessiner les graphiques, et la je suis bloque sur la position de graphique, a chaque fois je dois imposer la case de debut pour tracer le graphique , alors que je veux imposer que pour le prmier graphique et les autres se positionnent celon la derniere cellule occupee par le graphique precedent

voici le code que j(utilise
onglet = "Graphe_Complimentaires 2019"
nom_graphe = onglet
Sheets(nom_graphe).Select
ActiveSheet.Shapes.AddChart2(262, xl3DPie).Select
ActiveChart.ClearToMatchStyle
ActiveChart.ChartStyle = 264
ActiveChart.SetSourceData source:=Sheets("Feuil de travail").Range("C5:C7")
ActiveChart.FullSeriesCollection(1).XValues = "='Feuil de travail'!$B$2:$B$4"
ActiveChart.ChartTitle.Text = "Planned Matrix/Year 2019"

Position2 = Sheets(onglet).ChartObjects.Count
Sheets(onglet).ChartObjects(Position2).Name = "GR2"
With Sheets(onglet).ChartObjects("GR2")
.Left = ThisWorkbook.Worksheets(onglet).Range("H4").Left
.Top = ThisWorkbook.Worksheets(onglet).Range("H4").Top
End With



je vous remercie pour vos reponses
Afficher la suite 

1 réponse

Messages postés
9065
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 décembre 2019
465
0
Merci
bonjour, j'imagine que ton code ne fais pas ce que tu souhaites, mais tu n'expliques pas précisément en quoi.
je ne vois qu'un seul graphique, où est le code pour les suivants?
si je comprends ce que tu veux faire, tu pourrais peut-être mémoriser la position du "dernier" coin du graphe en utilisant ses propriétés Top, Height, Left, Width. et ensuite te servir de cela pour positionner le coin haut-gauche du suivant.
exemple (j'ai supposé que les graphes devaient se mettre en diagonale, chacun en bas et à droite du précédent):
dim prochainleft as double, prochaintop as double
With Sheets(onglet).ChartObjects("GR2")
  .Left = ThisWorkbook.Worksheets(onglet).Range("H4").Left
  .Top = ThisWorkbook.Worksheets(onglet).Range("H4").Top
  prochainleft=.Left+.Width
  prochaintop=.Top+.Height
End With
With Sheets(onglet).ChartObjects("GR3")
  .Left = prochainleft
  .Top = prochaintop
  prochainleft=.Left+.Width
  prochaintop=.Top+.Height
End With
blalaa
Messages postés
165
Date d'inscription
mercredi 18 avril 2018
Statut
Membre
Dernière intervention
27 novembre 2019
-
Bonjour

oui j'ai pas mis tt le code parceque c une repetition du premier (en changeant les données et la position )

je pense que ce tas fait me convient parfaitement
retser a le tester pour confirmer ca

merci bcp pour ta reponse rapide et efficace
Commenter la réponse de yg_be