Code qui ne marche pas pour chartobject

downloads

XLDnaute Nouveau
Bonjour,

Je me créer un petit programme pour surveiller mon poids. Je me suis fait un calendrier sur lequel j'indique tous les jours mon poids. A partir de ca, je voulais faire une courbe retracant mon evolution sous vba.

A partir de cours pris sur internet et d'aides que j'ai trouvé sur le forum j'ai pu me debrouiller toute seule et réaliser une esquisse de code.

Le gros soucis => il ne marche pas et j'ai beau plancher je ne vois pas mon erreur. Pourriez vous m'aider a la déterminer? J'ai mis le fichier joint

Par avance merci de m'accorder votre temps et votre aide.
 

Pièces jointes

  • classeurregime.xlsm
    16.8 KB · Affichages: 42
  • classeurregime.xlsm
    16.8 KB · Affichages: 52
  • classeurregime.xlsm
    16.8 KB · Affichages: 56

downloads

XLDnaute Nouveau
Re : Code qui ne marche pas pour chartobject

Je ne sais pas vraiment comment on comprime un code sur le forum j'essai comme ca si ca ne marche pas dsl ca sera un peu long.

Sub Courbes()
Dim I As Long
Dim colonnemax As Long

Cells(13, 3).Select
ActiveCell.Value = datedébut
colonnemax = ActiveCell.Column

Set mafeuille = ThisWorkbook.Worksheets("Evolution du poids")
With mafeuille
Set plage1 = .Range(.Cells(14 * I, 3), .Cells(14 * I, colonnemax))
Set plage2 = .Range(.Cells(13 * I, 3), .Cells(13 * I, colonnemax))
End With


With Sheets("Evolution du poids").ChartObjects.Add(Left:=100, Width:=24 * colonnemax, Top:=100 + 730 * l, Height:=700)

With .Chart.SeriesCollection.NewSeries
.Values = plage1
.XValues = plage2
.Name = "Courbe de mon poids"
End With

.Chart.ChartType = xlLine
.Chart.PlotArea.Interior.ColorIndex = 36
.Chart.ChartArea.Interior.ColorIndex = 35

.Chart.HasTitle = True
.Chart.ChartTitle.Text = "Courbe de mon poids "
.Chart.ChartTitle.Font.Size = 20
.Chart.ChartTitle.Font.Bold = True
.Chart.ChartTitle.Font.Italic = True

.Chart.SeriesCollection(2).HasDataLabels = True
.Chart.SeriesCollection(2).DataLabels.NumberFormat = "#"
.Chart.SeriesCollection(2).DataLabels.Font.ColorIndex = 3
.Chart.SeriesCollection(2).DataLabels.Font.Bold = True
.Chart.SeriesCollection(1).Border.ColorIndex = 51
.Chart.SeriesCollection(2).Border.ColorIndex = 3


.Chart.Legend.Position = xlLegendPositionBottom
.Chart.Legend.Font.Bold = True
.Chart.Legend.Font.Size = 12


With .Chart.Axes(xlCategory)
.TickLabels.NumberFormat = "#"
.HasMinorGridlines = True
.MinorGridlines.Border.ColorIndex = 16
.MinorGridlines.Border.LineStyle = xlDash
.HasMajorGridlines = True
.MajorGridlines.Border.ColorIndex = 36
.HasTitle = True
.AxisTitle.Caption = "Semaines"
.AxisTitle.Font.Size = 16


End With

With .Chart.Axes(xlValue)
.TickLabels.NumberFormat = "#"
.MinimumScale = 0
.MaximumScale = 100
.HasMajorGridlines = True
.MajorGridlines.Border.ColorIndex = 3
.MajorGridlines.Border.LineStyle = xlDash
.HasTitle = True
.AxisTitle.Caption = "Poids"
.AxisTitle.Font.Size = 16

End With
End With
End Sub
 

downloads

XLDnaute Nouveau
Re : Code qui ne marche pas pour chartobject

J'avais joint le fichier au début. Je l'ai remis ici normalement il prend en compte les maccro et j'ai rajouté des valeurs fictives.

Merci pour votre aide
 

Pièces jointes

  • classeurregime.xlsm
    17.4 KB · Affichages: 49
  • classeurregime.xlsm
    17.4 KB · Affichages: 56
  • classeurregime.xlsm
    17.4 KB · Affichages: 58
G

Guest

Guest
Re : Code qui ne marche pas pour chartobject

Re,

Autant pour moi, la macro était dans le module de code de la feuille. Normalement les macros se mettent dans un module.

J'ai pas compris à quoi pouvait te servir les variable I, L, dateDépart ni d'où elle venait.

Tu n'as qu'une serie dans ton Chart donc SeriesCollection(1) et pas SeriesCollection(2)

Joins tes fichiers au format 97-2003 afin que ceux qui n'ont pas 2007 puissent en profiter. Sinon va dans le sous-forum 2007.

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 480
Messages
2 088 757
Membres
103 950
dernier inscrit
Thomas Solioz