Bonjour à tous,
Voilà je travaille sur une présentation sur excel 2007. Une worksheet contient une liste de données auxquelles sont associées des dates (nommée "1"), une autre des graphiques (nommée "2").
Dans 1, deux cellules servent à indiquer deux dates qui représente une période destinée à figurer dans le graphique en 2. Voici la macro qui me construit le graphique. Elle peut surement être améliorée, je débute en VBA.
J'aimerais qu'à chaque fois que je change une des deux dates, le graphique se mette à jour automatiquement pour faire apparaitre la période correspondante. C'est assez simple je pense, mais après avoir étudié quelques pistes, je bute sur le langage VBA. Auriez vous une solution?
Merci d'avance (car rien ne vous résiste) !
Voilà je travaille sur une présentation sur excel 2007. Une worksheet contient une liste de données auxquelles sont associées des dates (nommée "1"), une autre des graphiques (nommée "2").
Dans 1, deux cellules servent à indiquer deux dates qui représente une période destinée à figurer dans le graphique en 2. Voici la macro qui me construit le graphique. Elle peut surement être améliorée, je débute en VBA.
J'aimerais qu'à chaque fois que je change une des deux dates, le graphique se mette à jour automatiquement pour faire apparaitre la période correspondante. C'est assez simple je pense, mais après avoir étudié quelques pistes, je bute sur le langage VBA. Auriez vous une solution?
Merci d'avance (car rien ne vous résiste) !
Code:
Sub ChartOngletAnalyse()
Dim MyChart As Chart
Dim DateDebut As Integer
Dim DateFin As Integer
Dim DataRange As Range
Dim PlusHaut As Range
Dim PlusBas As Range
DateDebut = Sheets(1).Cells(1, 3).Value
DateFin = Sheets(1).Cells(2, 3).Value
'les valeurs des lignes correspondants aux dates entrées en B1 et B2 sont en C1 et C2
Set DataRange = Sheets(2).Range(Sheets(2).Cells(DateDebut, 1), Sheets(2).Cells(DateFin, 5))
Set MyChart = Sheets(1).ChartObjects.Add(0, 660, 760, 390).Chart
MyChart.SetSourceData Source:=DataRange
MyChart.ChartType = xlStockOHLC
With MyChart
.SetElement msoElementLegendNone
.SetElement msoElementPrimaryValueAxisTitleNone
.SetElement msoElementPrimaryCategoryAxisTitleNone
.Axes(xlPrimary).MinimumScale = Cells(1, 2)
.Axes(xlPrimary).MaximumScale = Cells(2, 2) + 7
End With
End Sub