Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1892to1896
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Treemap VBA

Treemap VBA
12.08.2022 10:21:37
Sven
Hallo zusammen,
vor einiger Zeit habe ich schonmal nach Hilfe gefragt und bin am Ende leider nicht zu einer Lösung gekommen.
Was ich machen will:
Eine Treemap soll erstellt werden. Die Bezeichnungen stehen in E89:E94 und die Werte in F89:F94. Die Treemap sollte sich einfach auf das Tabellenblatt beziehen, so dass bei mehrfachen kopieren des Tabellenblattes immer die aktuellen Daten auf den Seiten genommen werden.
Hierzu habe ich damals auch einen Code von einem lieben User bekommen, vielleicht sieht ja jemand den Fehler. Denn leider kommt am Ende Ein Diagramm ohne Daten und Beschriftung raus.

Sub TeemapErstellen()
Dim chrDia As Object
Set chrDia = ActiveSheet.Shapes.AddChart2(410, xlTreemap)
With chrDia.Chart
.SeriesCollection.NewSeries
.FullSeriesCollection(1).Name = "=" & ActiveSheet.Name & "!$E$89:$E$94"
.FullSeriesCollection(1).Values = "=" & ActiveSheet.Name & "!$F$89:$F$94"
End With
End Sub
Liebe Grüße

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Funktioniert hervorragend..
12.08.2022 11:00:14
MCO
Abgesehen davon, dass man bei jeder Ausführung eine zusätzliche Grafik auf dem Blatt hat tut es super...
Gruß, MCO
AW: Funktioniert hervorragend..
12.08.2022 13:45:10
David
Hey nochmal, es funktioniert tatsächlich, ich habe den Fehler gefunden :D
Ich habe die Treemap über Makrorekorder formatiert, aber hier kommt das Problem mit der Ansprache.
Kann mir einer sagen wie ich das Diagramm benennen kann, damit meine Aufzeichnung funktioniert?
Ich weiß, wahrscheinlich sehr einfach, aber ich bin ein noob was VBA angeht und komme nur mit dem Rekorder klar. .name funktioniert leider nicht.
Liebe Grüße

Sub TreemapErstellen()
Dim chrDia As Object
Set chrDia = ActiveSheet.Shapes.AddChart2(410, xlTreemap)
.Name = "Dia3"
With chrDia.Chart
With .FullSeriesCollection(1)
.XValues = "=$E$89:$E$94"
.Values = "=$F$89:$F$94"
End With
.SetElement (msoElementChartTitleNone)
.SetElement (msoElementLegendNone)
End With
ActiveSheet.ChartObjects("Dia3").Activate
ActiveChart.ChartArea.Select
ActiveSheet.Shapes("Dia3").IncrementLeft 196.75
ActiveSheet.Shapes("Dia3").IncrementTop -24.75
ActiveChart.FullSeriesCollection(1).Select
ActiveChart.FullSeriesCollection(1).Points(5).Select
ActiveWindow.SmallScroll Down:=3
ActiveChart.FullSeriesCollection(0).Points(4).ApplyDataLabels
ActiveChart.FullSeriesCollection(1).Points(4).Select
ActiveChart.FullSeriesCollection(0).Points(3).ApplyDataLabels
ActiveChart.FullSeriesCollection(1).Points(6).Select
ActiveChart.FullSeriesCollection(0).Points(5).ApplyDataLabels
ActiveChart.FullSeriesCollection(1).Points(3).Select
ActiveChart.FullSeriesCollection(0).Points(2).ApplyDataLabels
ActiveChart.FullSeriesCollection(1).Points(1).Select
ActiveChart.FullSeriesCollection(0).Points(0).ApplyDataLabels
ActiveChart.FullSeriesCollection(1).Points(2).Select
ActiveChart.FullSeriesCollection(0).Points(1).ApplyDataLabels
End Sub

Anzeige
chrDia.Name = "Dia3"
12.08.2022 13:49:51
{Boris}
Hi,
...denn zu dem Zeitpunkt hast Du mit With ja noch kein Objekt referenzierst, auf das Du mit dem Punkt zugreifen könntest.
VG, Boris
AW: chrDia.Name = "Dia3"
12.08.2022 15:01:56
Sven
Jetzt klappt es, danke.
Mir ist jetzt nur das nächste Problem aufgefallen und vielleicht weißt du wie ich das machen könnte?
Wie könnte ich das so einbauen, dass die Treemap genau in H88:L95 eingesetzt wird?
Und da bin ich komplett aufgeschmissen: Wie könnte ich den einzelnen Formen Farben zuweisen, das hat mit dem Rekorder gar nicht geklappt.
Weißt du wie ich das machen könnte?
Liebe Grüße

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige