DarkCid
Messages postés195Date d'inscriptionmardi 22 février 2005StatutMembreDernière intervention26 octobre 2009
-
15 nov. 2006 à 15:27
cs_carvals
Messages postés50Date d'inscriptionlundi 20 novembre 2000StatutMembreDernière intervention23 janvier 2008
-
20 nov. 2006 à 12:18
Yaoh !
Je dois générer automatiquement des graphiques histogramme pour mon projet. Le problème, c'est que je ne sais pas à l'avance combien en faire. Bon, j'ai fait un enregistrement macro sous excel et voilà grosso modo ce qu'il me donne :
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets("Bulletin General").Range("I23:I27") _
, PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Bulletin"
With ActiveChart
.HasAxis(xlCategory, xlPrimary) = False
.HasAxis(xlValue, xlPrimary) = False
End With
ActiveChart.Axes(xlCategory, xlPrimary).CategoryType = xlAutomatic
With ActiveChart.Axes(xlCategory)
.HasMajorGridlines = False
.HasMinorGridlines = False
End With
With ActiveChart.Axes(xlValue)
.HasMajorGridlines = False
.HasMinorGridlines = False
End With
ActiveChart.HasLegend = False
ActiveChart.HasDataTable = False
ActiveChart.SeriesCollection(1).Select
With ActiveChart.ChartGroups(1)
.Overlap = 0
.GapWidth = 10
.HasSeriesLines = False
.VaryByCategories = False
End With
ActiveChart.ChartArea.Select
ActiveSheet.Shapes("Graphique 6").ScaleWidth 0.52, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("Graphique 6").ScaleHeight 0.45, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("Graphique 6").IncrementLeft 105#
ActiveSheet.Shapes("Graphique 6").IncrementTop 132#
ActiveSheet.Shapes("Graphique 6").ScaleWidth 0.66, msoFalse, _
msoScaleFromTopLeft
ActiveSheet.Shapes("Graphique 6").ScaleHeight 0.62, msoFalse, _
msoScaleFromTopLeft
ActiveChart.PlotArea.Select
Selection.Width = 110
Selection.Height = 44
Selection.Left = 1
Selection.Width = 118
Selection.Top = 1
Selection.Height = 52
ActiveWindow.Visible = False
Windows("Liste des Matières.xls").Activate
Mon principal problème vient du "Graphique 6". Je ne sais pas comment le récupérer ou, mieux le changer. De plus, j'ai essayer de faire un ActiveChart.Name = "truc" mais il me met une erreur.
En fait, à chaque fois que j'en fait un nouveau, le chiffre augmente, mais bon, si je dois changer mon code à chaque fois que je fais un essai, sa va pas vraiment le faire
Au pire, vous auriez pas un moyen de réinitialiser ce chiffre une fois tous les graphes supprimés ?
VisualBoinet
Messages postés64Date d'inscriptionmercredi 23 mars 2005StatutMembreDernière intervention14 juin 2007 17 nov. 2006 à 13:29
Salut ta essayé :
ActiveSheet.Shapes("Graphique 6").name = "truc" ?
et sinon : pourquoi tu n'enregistre pas une macro ou tu change simplement le nom de ton graph et il te filera le code...
VisualBoinet
Messages postés64Date d'inscriptionmercredi 23 mars 2005StatutMembreDernière intervention14 juin 2007 17 nov. 2006 à 14:55
Me suis mal exprimé :p
Une fois que ton graph est fait tu fait une nouvelle macro.
Pendant qu'elle enregistre tu change manuellement le nom de ton graphique
Puis tu arrete ta macro. Tu vas voir le code et ce sera marqué comment faire ...
VisualBoinet
Messages postés64Date d'inscriptionmercredi 23 mars 2005StatutMembreDernière intervention14 juin 2007 17 nov. 2006 à 14:55
Me suis mal exprimé :p
Une fois que ton graph est fait tu fait une nouvelle macro.
Pendant qu'elle enregistre tu change manuellement le nom de ton graphique
Puis tu arrete ta macro. Tu vas voir le code et ce sera marqué comment faire ...
Bon courage :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_carvals
Messages postés50Date d'inscriptionlundi 20 novembre 2000StatutMembreDernière intervention23 janvier 2008 20 nov. 2006 à 12:18
Il suffit d'appuyer sur la toucher Ctrl et de clicker sur la zone du graph ensuite tu verras la boite de dialogue en haut a gauche se mettre en mode edit.
en fait les graphique sont assez complexe car ils ont des Chart Area, Plot area legend ... etc ce qui englobe le tout est "Shapes" dc pour changer le nom de ton graph via macro utilise:
i = ActiveSheet.Shapes.Count
ActiveSheet.Shapes(i).Select 'ou Activesheet.shapes("Le nom de ton graph").select
Selection.Name = "Graph1"
La propriete "shapes" fonctionne comme toute les autres a savoir tu peux selectionner un "shape" avec son nom ou alors son index. Si ta macro cree un graph a chaque fois alors l'index de ton graph sera automatiquement le dernier numero ou "Shapes.count"