Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Creer un graphique sans l'activer en VBA [RESOLU]

  • Initiateur de la discussion Initiateur de la discussion Gmollet
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Gmollet

XLDnaute Nouveau
Bonjour Excelleurs,

Non ma question ne peut avoir pour réponse : "Enregistreur de macro"

Je veux donc creer un graphique a partir de données situé dans un autre onglet.
Mais pour se faire, je ne peux pas l'activer (que tout se fasse de façon caché).
Donc je m'interdis d'utiliser ActiveChart.truc

Mon code pour le moment est comme ca :

Code:
  For Each gph In Sheets("Feuil1").ChartObjects 'efface l'ensemble des graphiques (je crois)
         gph.Delete
    Next
    
    Application.Sheets("Feuil1").Shapes.AddChart 'ajout un graph
    
    Set graph = Sheets("Feuil1").ChartObjects(1)   'tentative de selection de celui ci
    graph.ChartType = xlLine 'operation sur le graphique .. ici ca marche pas. "objet inconnu"
    graph.SeriesCollection.NewSeries
    graph.SeriesCollection(1).Name = "='Activite'!$A$31"
    graph.SeriesCollection(1).Values = "='Activite'!$B$31:$G$31"
    graph.SeriesCollection(1).XValues = "='Activite'!$B$7:$G$7"
    graph.Axes(xlValue).DisplayUnit = xlThousands
    graph.Axes(xlValue).HasDisplayUnitLabel = True
    Set graph = Nothing


Ca plante a ligne : graph.ChartType = xlLine
Le problème est donc : je ne sais pas comment sélectionner et changer les paramètres d'un graph !

Merci pour votre aide !
 
Dernière édition:
Re : Creer un graphique sans l'activer en VBA

Bonjour,

un exemple de création de graph incorporé sur une feuille de calcul, à adapter à ton projet :
Code:
Dim c As ChartObject, s As Series
Set c = Feuil5.ChartObjects.Add(Range("L1").Left, Range("L1").Top, 350, 150)
With c.Chart
    .ChartType = xlLineMarkers
    .SetSourceData Source:=Feuil5.Range("A1:D6"), PlotBy:=xlRows
    Set s = .SeriesCollection.NewSeries
    With s
        .Values = Feuil5.Range("M21:o21")
        .Name = Feuil5.Range("L21")
        .ChartType = xlAreaStacked
    End With
End With

bon après midi
@+
 
Re : Creer un graphique sans l'activer en VBA

Parfait ! Ca marche parfaitement.
Je n'avais pas pensé à ChartObjects.Add

Code:
   Set graph = Application.Sheets("Feuil1").ChartObjects.Add(Range("A1").Left, Range("A1").Top, 350, 150)
    With graph.Chart
        .ChartType = xlLine
        .SeriesCollection.NewSeries
        .SeriesCollection(1).Name = "='Activite'!$A$31"
        .SeriesCollection(1).Values = "='Activite'!$B$31:$G$31"
        .SeriesCollection(1).XValues = "='Activite'!$B$7:$G$7"
        .Axes(xlValue).DisplayUnit = xlThousands
        .Axes(xlValue).HasDisplayUnitLabel = True
    Set graph = Nothing

Merci beaucoup !
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…