Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1164to1168
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
Umbenennung Datenbeschriftung in Diagramm
Goll
Hallo,
ich erstelle per Makro ein gestapeltes Balkendiagramm (je Abteilung: IST - Hochrechnung - Ziellücke) mit Datenbeschriftung. Die Werte der Datenbeschriftung (%) möchte ich nachträglich in Absolutwerte ändern. Die Werte hierfür stehen auf dem Tabellenblatt, auf dem auch das Diagramm eingebettet ist. Für die Datenreihen (Balken) 2 bis 4 funktioniert das Ändern der Datenbeschriftung auch tadellos. Nur bei der ersten Datenreihe klappt das nicht und ich weiß nicht weshalb.
Auszug des problematischen Codes (größerer Code Ausschnitt siehe unten):
'Datenbeschriftung IST ersetzen
ActiveChart.SeriesCollection(1).Points(1).DataLabel.Select
With Selection
.Characters.Text = Range("C9")
.Characters.Font.Size = 12
End With
Das Makro zieht sich den richtigen Wert aus C9, überträgt ihn aber dann nicht ins Diagramm. Die Schriftgröße wird aber geändert. Das Makro läuft ohne Fehlermeldung durch.
Sub Makro2()
ActiveSheet.Shapes.AddChart.Select
With ActiveChart
.SetSourceData Source:=Range("'Tabelle1'!$B$14:$E$18")
.ChartType = xlBarStacked
.Axes(xlValue).Select
.Axes(xlValue).MinimumScale = 0
.Axes(xlValue).MaximumScale = Range("L20")
.Axes(xlValue).MajorUnit = 0.2
.Axes(xlValue).MajorUnit = 1
'Legende unten
.SetElement (msoElementLegendBottom)
'Datenbeschriftungen einfügen
.SeriesCollection(1).ApplyDataLabels
.SeriesCollection(2).ApplyDataLabels
.SeriesCollection(3).ApplyDataLabels
'Format x-Achse
.Axes(xlValue).Select
With Selection.TickLabels
.NumberFormat = "0%"
.Font.Size = 12
End With
'Format y-Achse
.Axes(xlCategory).Select
With Selection
.TickLabels.Font.Size = 12
.TickMarkSpacing = 6
End With
End With
'Datenbeschriftung IST ersetzen
ActiveChart.SeriesCollection(1).Points(1).DataLabel.Select
With Selection
.Characters.Text = Range("C9")
.Characters.Font.Size = 12
End With
ActiveChart.SeriesCollection(1).Points(2).DataLabel.Select
With Selection
.Characters.Text = Range("C10")
.Characters.Font.Size = 12
End With
ActiveChart.SeriesCollection(1).Points(3).DataLabel.Select
With Selection
.Characters.Text = Range("C11")
.Characters.Font.Size = 12
End With
ActiveChart.SeriesCollection(1).Points(4).DataLabel.Select
With Selection
.Characters.Text = Range("C12")
.Characters.Font.Size = 12
End With
Hat jemand eine Idee, woran das liegen könnte?
Vielen Dank für eure Hilfe und beste Grüße
Herbert

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

Betreff
Benutzer
Anzeige
AW: Umbenennung Datenbeschriftung in Diagramm
30.06.2010 19:45:17
Beverly
Hi Herbert,
vielleicht wäre die Arbeitsmappe sehr hilfreich, denn wer könnte/sollte deine Bedingungen 1:1 nachbauen?


AW: Umbenennung Datenbeschriftung in Diagramm
01.07.2010 10:55:12
Beverly
Hi Falko (oder Herbert?),
nicht .Characters.Text = Range("C9") sondern einfach .Text = Range("C9").
Auch bei der Diagrammerstellung kann man - wie bei vielem anderen - auf Select verzichten:

Sub DiaErstellen()
Dim chDiagramm As Chart
Dim inPunkt As Integer
Dim inReihe As Integer
Set chDiagramm = ActiveSheet.ChartObjects.Add(100, 100, 350, 220).Chart
With chDiagramm
.SetSourceData Source:=Range("'Tabelle1'!$B$14:$E$18")
.ChartType = xlBarStacked
.Axes(xlValue).MinimumScale = 0
.Axes(xlValue).MaximumScale = Range("L20")
.Axes(xlValue).MajorUnit = 1
'Legende unten
.SetElement (msoElementLegendBottom)
'Format x-Achse
With .Axes(xlValue).TickLabels
.NumberFormat = "0%"
.Font.Size = 12
End With
'Format y-Achse
With .Axes(xlCategory)
.TickLabels.Font.Size = 12
.TickMarkSpacing = 6
End With
'Datenbeschriftungen einfügen
.ApplyDataLabels
'Datenbeschriftung IST und Ziellücke ersetzen
For inReihe = 1 To .SeriesCollection.Count
For inPunkt = 1 To .SeriesCollection(inReihe).Points.Count
With .SeriesCollection(inReihe).Points(inPunkt).DataLabel
.Text = Cells(inPunkt + 8, inReihe + 2)
.Characters.Font.Size = 12
End With
Next inPunkt
Next inReihe
End With
End Sub



Anzeige
AW: Umbenennung Datenbeschriftung in Diagramm
01.07.2010 11:13:25
Goll
Hi Beverly,
vielen Dankfür deine Hilfe. Es funktioniert und das Diagramm sieht nun so aus, wie ich es haben möchte.
Vielen Dank auch für den umgeschriebenen, verkürzten Code! Davon kann ich noch eine Menge lernen.
Schönen Tag noch

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige