Placement précis d'un graphique généré par maccro

Y compris Power BI, Power Query et toute autre question en lien avec Excel
m
mllesandiih
Nouveau venu
Nouveau venu
Messages : 8
Inscrit le : 10 avril 2017
Version d'Excel : 2007 FR

Message par mllesandiih » 15 juin 2017, 12:57

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
B
Braters
Membre dévoué
Membre dévoué
Messages : 579
Appréciations reçues : 10
Inscrit le : 23 décembre 2015
Version d'Excel : 2013 FR

Message par Braters » 15 juin 2017, 13:54

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
:btres:
m
mllesandiih
Nouveau venu
Nouveau venu
Messages : 8
Inscrit le : 10 avril 2017
Version d'Excel : 2007 FR

Message par mllesandiih » 15 juin 2017, 13:58

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
B
Braters
Membre dévoué
Membre dévoué
Messages : 579
Appréciations reçues : 10
Inscrit le : 23 décembre 2015
Version d'Excel : 2013 FR

Message par Braters » 16 juin 2017, 12:00

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
:btres:
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message