Kartendiagramm per VBA erstellen und formatieren
24.09.2019 17:42:24
Peter
Hi Zusammen,
ich bin noch recht neu im Umgang mit VBA und versuche noch viel über den Makro-Rekorder zu arbeiten und den Code dann anzupassen. Bisher hat das auch ganz gut geklappt allerdings bin ich nun bei folgenden Problem angekommen.
Ich möchte per Makro ein Kartendiagramm erstellen und formatieren. Das erstellen klappt auch allerdings gibt es bei der Formatierung ein paar Schritte die einfach nicht klappen. Auch mit Google-Recherche konnte ich leider keine passenden Lösungen finden und hoffe nun auf eure Hilfe.
Folgende Sachen klappen nicht:
- Der Hintergrund des Diagrammbereich soll durchsichtig sein
- der Rahmen des Diagrammbereich soll entfernt werden
Hier mein Code für das Diagramm:
Public Sub Kartendiagramm_BL()
Dim wks As Worksheet
Set wks = Worksheets("Diagramme")
wks.Range("N5:O21").Select
'da der Code: ActiveChart.SetSourceData Source:=Range("...") _
nicht geht habe ich es notgezwungen über Select gelöst. In den Bereich _
befinden sich in Spalte N die Bundesländer und in Spalte O dazugehörige Werte.
wks.Shapes.AddChart2(494, xlRegionMap).Name = "Kartendiagramm"
wks.Shapes("Kartendiagramm").Select
wks.ChartObjects("Kartendiagramm").Activate
ActiveChart.SetElement (msoElementChartTitleNone)
ActiveChart.Legend.IncludeInLayout = False
ActiveChart.FullSeriesCollection(1).ApplyDataLabels
Application.CutCopyMode = False
ActiveChart.FullSeriesCollection(1).Name = " "
With wks.Shapes("Kartendiagramm")
.Top = 370
.Left = 730
End With
ActiveChart.ChartArea.FOrmat.Fill.Visible = msoFalse
ActiveSheet.Shapes("Kartendiagramm").Fill.Visible = msoFalse
'soll den Hintergrund durchsichtig machen aber funktioniert hier nicht
ActiveSheet.Shapes("Kartendiagramm").Line.Visible = msoFalse
'soll den Rahmen entfernen aber führt dazu, dass in den _
Formatierungseigenschaften unter Rahmen: "keine Linie" steht. Aber es wird _
trotzdem eine Linie noch angezeigt.
With ActiveChart.FullSeriesCollection(1)
.FOrmat.Line.ForeColor.RGB = RGB(0, 0, 0)
.SeriesColorMaxGradientStop.StopColor.RGB = 411284
.SeriesColorMaxGradientStop.StopColor.TintAndShade = 0
.SeriesColorMaxGradientStop.StopColor.Transparency = 0
.SeriesColorMinGradientStop.StopColor.RGB = RGB(255, 255, 255)
.SeriesColorMinGradientStop.StopColor.TintAndShade = 0
.SeriesColorMinGradientStop.StopColor.Transparency = 0
End With
End Sub
Hat jemand eine Idee wo der Fehler ist und wie man den Diagrammbereich für dieses Diagramm korrekt anspricht, um den Hintergrund und Rahmen zu entfernen?
Danke