Graphique

Fermé
blalaa Messages postés 167 Date d'inscription mercredi 18 avril 2018 Statut Membre Dernière intervention 24 mars 2020 - 26 nov. 2019 à 16:57
blalaa Messages postés 167 Date d'inscription mercredi 18 avril 2018 Statut Membre Dernière intervention 24 mars 2020 - 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

1 réponse

yg_be Messages postés 23297 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 octobre 2024 Ambassadeur 1 548
Modifié le 26 nov. 2019 à 18:28
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
0
blalaa Messages postés 167 Date d'inscription mercredi 18 avril 2018 Statut Membre Dernière intervention 24 mars 2020
27 nov. 2019 à 10:19
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
0