Makro einbauen
Hallo Michael,
ich poste hier noch mal den Makro aus dem Link von Thomas:
Option Explicit
Sub MakePlotGridSquareOfActiveChart()
MakePlotGridSquare ActiveChart
End Sub
Sub MakePlotGridSquareOfAllCharts()
Dim myChartObject As ChartObject
For Each myChartObject In ActiveSheet.ChartObjects
MakePlotGridSquare myChartObject.Chart
Next
End Sub
Sub MakePlotGridSquare(myChart As Chart, Optional bEquiTic As Boolean = False)
Dim plotInHt As Integer, plotInWd As Integer
Dim Ymax As Double, Ymin As Double, Ydel As Double
Dim Xmax As Double, Xmin As Double, Xdel As Double
Dim Ypix As Double, Xpix As Double
With myChart
' get plot size
With .PlotArea
plotInHt = .InsideHeight
plotInWd = .InsideWidth
End With
Do
' Get axis scale parameters and lock scales
With .Axes(xlValue)
Ymax = .MaximumScale
Ymin = .MinimumScale
Ydel = .MajorUnit
.MaximumScaleIsAuto = False
.MinimumScaleIsAuto = False
.MajorUnitIsAuto = False
End With
With .Axes(xlCategory)
Xmax = .MaximumScale
Xmin = .MinimumScale
Xdel = .MajorUnit
.MaximumScaleIsAuto = False
.MinimumScaleIsAuto = False
.MajorUnitIsAuto = False
End With
If bEquiTic Then
' Set tick spacings to same value
Xdel = WorksheetFunction.Max(Xdel, Ydel)
Ydel = Xdel
.Axes(xlCategory).MajorUnit = Xdel
.Axes(xlValue).MajorUnit = Ydel
End If
' Pixels per grid
Ypix = plotInHt \* Ydel / (Ymax - Ymin)
Xpix = plotInWd \* Xdel / (Xmax - Xmin)
' Keep plot size as is, adjust max scales
If Xpix \> Ypix Then
.Axes(xlCategory).MaximumScale = plotInWd \* Xdel / Ypix + Xmin
Else
.Axes(xlValue).MaximumScale = plotInHt \* Ydel / Xpix + Ymin
End If
' Repeat if "something" else changed to distort chart axes
' Don't repeat if we're within 1%
Loop While Abs(Log(Xpix / Ypix)) \> 0.01
End With
End Sub
Jetzt mach mal folgendes:
Geh in deine Arbeitsmappe und drücke Alt-F11.
Es öffnet sich der VBA-Editor.
Im Menü klickst du auf Einfügen - Modul.
Jetzt öffnet sich ein großes Fenster auf der grauen Fläche.
Kopiere den Makro-Code von hier oben in das Fenster.
Dann kannst du den VBA-Editor schließen.
Wechsle in Excel auf dein Diagrammblatt.
Nun drückst du Alt-F8.
Es erscheint ein Fenster. In der obersten Zeile ist der Name des momentan ausgewählten Makros schwarz hinterlegt. Es müsste
MakePlotGridSquareOfActiveChart
sein.
Drücke die Eingabetaste oder klicke auf Ausführen.
Danach sollte dein Diagramm 1:1 skaliert sein.
Wenn du mehrere Diagramme hast, die du alle skalieren willst, kannst du acuh den anderen Makro aufrufen.
Ach, wie schön dass es in Interet für so vieles schon Lösungen gibt.
Gruß, Andreas