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

Graphique VBA / Excel

  • Initiateur de la discussion Initiateur de la discussion Amélie
  • 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 !

A

Amélie

Guest
Bonjour tout le monde! Comment allez vous depuis hier? 🙂
Comme vouv vous en doutez j'ai de nouveau un petit soucis :
J'aimerais réaliser un graphique d'une plage de données mais problèmes :
- la plage de données est de taille variable
- le graphique ne doit pas etre situé sur la meme feuille que les données

J'ai déja fait un petit bout de code que je vous donne mais bon!!

Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets('Tableau-stats').Range('E2:E100'), PlotBy:= _
xlColumns
ActiveChart.SeriesCollection(1).XValues = '=Tableau-stats!R2C1:R100C1'
ActiveChart.Location Where:=xlLocationAsObject, Name:='Tableau-stats'

Merci de votre aide!!
 
Salut!!
Tiens voici le code :

nb = Range('A65536').End(xlUp).Row

Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets('Tableau-stats').Range('E2:E' & nb), PlotBy:=xlColumns
ActiveChart.SeriesCollection(1).XValues = '='Tableau-stats'!R2C1:R' & nb & 'C1'
ActiveChart.Location Where:=xlLocationAsObject, Name:='Graph-Stats'
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = 'Stats'
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = 'Adresse_IP'
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = 'Nbre_Impressions'
End With


J'espere que ça te convient!
 
Bonjour à vous deux et au forum,

je serai intéressée par ce que vous avez développé... j'ai tenté d'insérer cela dans un fichier (en renommant les feuilles,...) mais cela n'a pas marché... pourriez-vous me transférer votre travail en pièce jointe...

merci d'avance.

Maria
 
Bonjour!
Je suis désolé Maria je ne peux pas installer winzip ! Tiens je te redonne le code à inserer dans un module VBA :
nb = Range('A65536').End(xlUp).Row

Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets('Tableau-stats').Range('E2:E' & nb), PlotBy:=xlColumns
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = '='Tableau-stats'!R2C1:R' & nb & 'C1'
ActiveChart.SeriesCollection(1).Name = '=''Mois n'''
ActiveChart.SeriesCollection(2).XValues = '='Tableau-stats'!R2C1:R' & nb & 'C1'
ActiveChart.SeriesCollection(2).Values = '='Tableau-stats'!R2C6:R' & nb & 'C6'
ActiveChart.SeriesCollection(2).Name = '=''Mois n-1'''

ActiveChart.Location Where:=xlLocationAsObject, Name:='Graph-Stats'
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = 'Stats du ' & Stage
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = 'Adresse_IP'
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = 'Nb pages imprimées'
End With


Ce n'est plus tout à fait pareil mais il y a 2 série de données au lieu d'une. Si tu ne comprends pas, je suis là!!
 
Bonjour,

Je me trouve un peu dans la situation d'Amélie, raison pour laquelle je me permets de vous soumettre mon problème à l'intérieur du même sujet plutôt que d'en ouvrir un autre. J'espère que vous n'y verrez pas d'inconvénient 😉

Tout comme Amélie, je veux créer une macro pour réaliser un graphique (de type personnalisé et déjà existant) pour une plage de données. Ce graphique ne doit pas se placer sur la feuille de données (DONNÉES) mais sur une autre (Feuil1).
Mon problème concerne la plage de cellules sélectionnées sur la feuille DONNÉES : comment faire pour que la macro construise le graphique à partir de la plage B6:AE6 la première fois, puis la plage B7:AE7 la fois d'après, puis la plage B8:AE8 la fois suivante, et ainsi de suite...?

Voici ce que j'ai obtenu avec l'enregistreur de macros, mais cette macro est évidemment sans intérêt puisqu'elle reconstruit chaque fois le même graphique

Charts.Add
ActiveChart.ApplyCustomType ChartType:=xlUserDefined, TypeName:= _
'Trajectoires rouge'
ActiveChart.SetSourceData Source:=Sheets('DONNÉES').Range('B6:AE6', PlotBy _
:=xlRows
ActiveChart.Location Where:=xlLocationAsObject, Name:='Feuil1'
With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
End Sub


Merci d'avance !
 
bonsoir Amélie , Antonio, Maria, jean paul, bonsoir forum,
pour répondre à jean paul : exemple de plusieurs graphes en feuille 2 avec des sources en boucle sur colonnes en feuille 1
cliquer sur le bouton pour reproduire les graphes en feuil 2

Sub macro1()
Dim graphe As ChartObject, Plage As Range
Dim Ws As Worksheet, Decalage As Integer
'------supprime graphes-------------
On Error Resume Next
Sheets('Feuil2').Select
ActiveSheet.ChartObjects.Delete
'-----installe un compeur de colonnes
Sheets('Feuil1').Select

n = Range('A1', Range('A1').End(xlToRight)).Count
For u = 1 To n
'----------------prépare le graphe-------------
With Ws
Set Plage = Range(Cells(1, u), Cells(8, u))
End With
Set graphe = Worksheets('Feuil2').ChartObjects.Add(300 + Decalage, 1 + Decalage, 400, 220)
'décale à gauche 'décale vers le bas
With graphe.Chart
.SetSourceData Range(Cells(1, u), Cells(8, u))
.ChartType = xlXYScatterSmoothNoMarkers
.ChartArea.Interior.ColorIndex = 34
.PlotArea.Interior.ColorIndex = 8
.PlotArea.Width = 500 '----------------------largeur graphe
.PlotArea.Height = 500 '--------------------hauteur graphe
.SeriesCollection.Add Plage, xlColumns, True, True
End With
Decalage = Decalage + 30 '----------------modifie l'écart entre graphes
Next
End Sub

albert
[file name=graphe.zip size=9739]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/graphe.zip[/file]
 

Pièces jointes

Re : Re:Graphique VBA / Excel



bonjour,

c'est rayan j'ai même probléme que vous je ss contrôleur de gestion stagiaire et l'entreprise m'a demandé d'automatiser un graphique sur plusieurs feuilles sachant que les feuilles ont même format des données

Merci d'avance
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
1 K
Réponses
7
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…