AW: Diagramm y-Achse bei Minimum x-Achse schneiden
05.03.2009 16:01:30
fcs
Hallo Marco,
der standardmäßige Schnittpunkt von X- (Kategorie-)-Achse und Y-Achse ist vom Diagrammtyp abhängig.
Beim XY-Punkt-Diagramm ist er meist bei 0.
Als Option kann nur die Einstellung "Größenachse (Y) schneidet bei Maximum" gewählt werden.
Für alle anderen Schnittpunkte muss man den Wert explizit vorgeben.
Code-m´ßig schaut das dann für ein XY-Diagramm etwa wie folgt aus.
Gruß
Franz
Sub Makro1()
Dim wks As Worksheet, objDiag As Chart, rngBereich As Range
Set wks = Worksheets(1) 'oder Worksheets("Tabelel1")
'Datenbereich des Diagramms (Spalten A und B)
With wks
.Activate
Set rngBereich = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp).Offset(0, 1))
End With
'Diagramm erstellen
Charts.Add
ActiveChart.ChartType = xlXYScatter 'Punkt XY-Diagramm
ActiveChart.SetSourceData Source:=rngBereich, PlotBy _
:=xlColumns
'diagramm im Blatt eingebettet
' ActiveChart.Location Where:=xlLocationAsObject, Name:=wks.Name
' Set objDiag = wks.ChartObjects(wks.ChartObjects.Count).Chart
'Diagramm separat
ActiveChart.Location Where:=xlLocationAsNewSheet
Set objDiag = ActiveWorkbook.Charts(ActiveWorkbook.Charts.Count)
'X-Achse formatieren
With objDiag.Axes(xlCategory)
.MinimumScaleIsAuto = False
.MinimumScale = Application.WorksheetFunction.Min(objDiag.SeriesCollection(1).XValues)
.MaximumScaleIsAuto = True
.MinorUnitIsAuto = True
.MajorUnitIsAuto = True
.Crosses = xlCustom
.CrossesAt = Application.WorksheetFunction.Min(objDiag.SeriesCollection(1).XValues)
.ReversePlotOrder = False
.ScaleType = xlLinear
.DisplayUnit = xlNone
End With
End Sub