Beste forumleden,
Ik heb een excel sheet gemaakt met veel data, deze data zou ik graag inzichtelijk willen maken door middel van grafieken.
Nu is alle data gekoppeld aan de tijd en heb ik een filter ingesteld om te kunnen selecteren op tijdsintervallen.
Met VBA kan ik nu een grafiek maken van deze data, maar het enige nadeel is dat de datum op de x-as niet gekoppeld is aan de datum van de data.
Hoe krijg ik dit voor elkaar?
Ik heb als voorbeeld een vereenvoudiging van het excelsheet toegevoegd.
De code die ik nu gebruik is:
waarbij in cel B32 en B33 door middel van SUBTOTAAL gezocht wordt op de minimale en maximale waarde uit de gefilterde data.
Kan iemand mij hierbij helpen?
Alvast bedankt!
Groetjes
Bekijk bijlage Kopie van voorbeeld.xlsm
Ik heb een excel sheet gemaakt met veel data, deze data zou ik graag inzichtelijk willen maken door middel van grafieken.
Nu is alle data gekoppeld aan de tijd en heb ik een filter ingesteld om te kunnen selecteren op tijdsintervallen.
Met VBA kan ik nu een grafiek maken van deze data, maar het enige nadeel is dat de datum op de x-as niet gekoppeld is aan de datum van de data.
Hoe krijg ik dit voor elkaar?
Ik heb als voorbeeld een vereenvoudiging van het excelsheet toegevoegd.
De code die ik nu gebruik is:
Code:
Private Sub test_Click()
'Your data range for the chart
Set rng = ThisWorkbook.Sheets(2).Range("d1:D99")
'Create a chart
Set cht = ActiveSheet.ChartObjects.Add( _
Left:=ActiveCell.Left, _
Width:=250, _
Top:=ActiveCell.Top, _
Height:=150)
'Give chart some data
cht.Chart.SetSourceData Source:=rng
With cht.Chart
.HasTitle = True
.ChartTitle.Characters.Text = "ChartTitle"
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlCategory, xlPrimary).CategoryType = xlTimeScale
.Axes(xlCategory, xlPrimary).TickLabels.NumberFormat = "dd mmmm"
.Axes(xlCategory, xlPrimary).BaseUnit = xlMonths
.Axes(xlCategory, xlPrimary).MinimumScale = ThisWorkbook.Sheets(1).Range("B32")
.Axes(xlCategory, xlPrimary).MaximumScale = ThisWorkbook.Sheets(1).Range("B33")
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).MinimumScale = 0
.Axes(xlValue, xlPrimary).MaximumScale = 40
.HasAxis(xlCategory, xlPrimary) = True
.HasAxis(xlValue, xlPrimary) = True
.HasDataTable = False
.Axes(xlValue, xlPrimary).AxisTitle.Delete
End With
'Add minor gridlines
Set ax = cht.Chart.Axes(xlValue)
With ax
.HasMinorGridlines = True
.HasMajorGridlines = True
.MajorUnit = 20
.MinorUnit = 10
.MinorGridlines.Border.LineStyle = xlxLine
.MinorGridlines.Border.Color = RGB(192, 192, 192)
End With
'Legend position
cht.Chart.Legend.Position = xlLegendPositionBottom
'Determine the chart type
cht.Chart.ChartType = xlXYScatterLinesNoMarkers
MsgBox ("Done")
End Sub
waarbij in cel B32 en B33 door middel van SUBTOTAAL gezocht wordt op de minimale en maximale waarde uit de gefilterde data.
Kan iemand mij hierbij helpen?
Alvast bedankt!
Groetjes
Bekijk bijlage Kopie van voorbeeld.xlsm