Placement précis d'un graphique généré par maccro
Bonjour,
J'ai une feuille excel comportant un graphique généré par une maccro et j'aimerai le placer à un endroit spécifique de cette feuille
J’ai essayé de placer mon graphique avec ça
' Pour le placer a un endroit precis
With ActiveSheet.Shapes("Eclairement reçu en fonction de l'heure au fil des saisons")
.Left = Range("K8").Left
.Top = Range("K8").Top
End With
mais impossible je ne comprends pas pourquoi
Merci de votre aide
Voici le code de mon graphique si besoin
Sub Graphique_eclairement_en_fct_de_lheure()
'
' Graphique_eclairement_en_fct_de_lheure Macro
'
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatterSmooth
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Name = "=""15-janv"""
ActiveChart.SeriesCollection(1).XValues = "='Boucle_Heure'!$C$99:$C$105"
ActiveChart.SeriesCollection(1).Values = "='Boucle_Heure'!$D$99:$D$105"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Name = "=""15-avr"""
ActiveChart.SeriesCollection(2).XValues = "='Boucle_Heure'!$C$755:$C$763"
ActiveChart.SeriesCollection(2).Values = "='Boucle_Heure'!$D$755:$D$763"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(3).Name = "=""15-juil"""
ActiveChart.SeriesCollection(3).XValues = "='Boucle_Heure'!$C$1574:$C$1582"
ActiveChart.SeriesCollection(3).Values = "='Boucle_Heure'!$D$1574:$D$1582"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(4).Name = "=""15-oct"""
ActiveChart.SeriesCollection(4).XValues = "='Boucle_Heure'!$C$2376:$C$2382"
ActiveChart.SeriesCollection(4).Values = "='Boucle_Heure'!$D$2376:$D$2382"
' Va créer les séries des graphiques respectivement 15 janvier, avril, juillet et octobre
' PROBLEME : UNE SERIE 5 ET 6 APPARAIT SANS SAVOIR PQ
ActiveChart.SetElement (msoElementChartTitleCenteredOverlay)
ActiveChart.ChartTitle.Text = _
"Eclairement reçu en fonction de l'heure au fil des saisons"
' Permet d'ajouter un titre
ActiveChart.Axes(xlCategory).MinimumScale = 8
' Fait commencer l'abcisse à 8 au lieu de 0
End Sub
Bonjour,
Tu pourrai essayer de mettre la range complète. Sur un de mes fichier voilà comment j'ai fait :
Dim MoisN As ChartObject
Set MoisN = Feuil10.ChartObjects("Mois2017")
Set Emplacement1 = Range("E29:L38")
With MoisN
.Left = Emplacement1.Left
.Top = Emplacement1.Top
.Height = Emplacement1.Height
.Width = Emplacement1.Width
End with
Cela fonctionne chez moi, à voir si cela répond à ton problème.
A plus
Merci de ton aide, Que représente MoisN ? Le nom de ton graphique ?
Braters a écrit :Bonjour,
Tu pourrai essayer de mettre la range complète. Sur un de mes fichier voilà comment j'ai fait :
Dim MoisN As ChartObject Set MoisN = Feuil10.ChartObjects("Mois2017") Set Emplacement1 = Range("E29:L38") With MoisN .Left = Emplacement1.Left .Top = Emplacement1.Top .Height = Emplacement1.Height .Width = Emplacement1.Width End with
C'est une variable représentant mon graphique, le vrai nom de mon graphique est "Mois2017" comme le tien est "Eclairement reçu en fonction de l'heure au fil des saisons". Mais sous vba en utilisant cette ligne :
Set MoisN = Feuil10.ChartObjects("Mois2017")
je donne une nom pour simplifier le code.
De plus, tu peux voir que je qualifie mon graphique comme un ChartObjects et non pas comme une Shapes. Je ne sais pas si cela à un impact.
Tu peux essayer ainsi :
Dim EclairSaison As ChartObject
Set EclairSaison = Activesheet.ChartObjects("Eclairement reçu en fonction de l'heure au fil des saisons")
Set Emplacement1 = Range("K8:N15") 'Par exemple
With EclairSaison
.Left = Emplacement1.Left
.Top = Emplacement1.Top
.Height = Emplacement1.Height
.Width = Emplacement1.Width
End with
Voilà, a plus