Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Umbenennung Datenbeschriftung in Diagramm

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
Anzeige

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 09:46:56
Goll
Gutem Morgen!
OK, Beverly, gute Idee. Ich habe die Datei hochgeladen.
https://www.herber.de/bbs/user/70354.xlsm
Viele Grüße
Falko
Anzeige
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
Anzeige
Anzeige

Infobox / Tutorial

Datenbeschriftung in Excel-Diagrammen ändern


Schritt-für-Schritt-Anleitung

  1. Diagramm erstellen: Erstelle zunächst dein Diagramm, z.B. ein gestapeltes Balkendiagramm. Du kannst dies in Excel über die Registerkarte "Einfügen" und dann "Diagramm" tun.

  2. Datenbeschriftungen hinzufügen:

    • Klicke auf dein Diagramm.
    • Wähle die Datenreihe aus, bei der du die Datenbeschriftung hinzufügen möchtest.
    • Klicke auf "Diagramm-Elemente" (das Pluszeichen neben dem Diagramm) und aktiviere "Datenbeschriftungen".
  3. Datenbeschriftung ändern: Um die Datenbeschriftung zu ändern, kannst du die folgende VBA-Prozedur verwenden:

    Sub DatenbeschriftungenAendern()
       Dim chDiagramm As Chart
       Set chDiagramm = ActiveSheet.ChartObjects(1).Chart
       Dim i As Integer
    
       For i = 1 To chDiagramm.SeriesCollection(1).Points.Count
           chDiagramm.SeriesCollection(1).Points(i).DataLabel.Text = Cells(i + 8, 3).Value
       Next i
    End Sub

    Diese Prozedur ändert die Datenbeschriftungen in deinem Diagramm basierend auf den Werten in den Zellen.

  4. Formatierung der Schrift: Um die Schriftgröße oder den Font der Datenbeschriftungen zu ändern, kannst du folgendes hinzufügen:

    With chDiagramm.SeriesCollection(1).Points(i).DataLabel
       .Characters.Font.Size = 12
    End With

Häufige Fehler und Lösungen

  • Fehler bei der Datenbeschriftung: Wenn die Werte der Datenbeschriftungen nicht aktualisiert werden, prüfe, ob die Zellen, auf die verwiesen wird, die richtigen Werte enthalten. Vergewissere dich, dass die Zellen nicht leer sind.

  • Datenbeschriftung fehlt am Ende: Wenn die "excel datenbeschriftung am ende außerhalb fehlt", stelle sicher, dass die Datenreihe ausreichend Platz hat, um die Beschriftungen anzuzeigen. Du kannst die Position der Datenbeschriftungen manuell anpassen.


Alternative Methoden

Du kannst Datenbeschriftungen auch direkt in Excel ohne VBA hinzufügen:

  1. Rechtsklick auf die Datenreihe und wähle "Datenbeschriftungen hinzufügen".
  2. Formatieren: Klicke dann erneut mit der rechten Maustaste auf die hinzugefügten Beschriftungen und wähle "Datenbeschriftungen formatieren", um die Schriftart oder Position zu ändern.

Praktische Beispiele

  • Balkendiagramm: Wenn du ein Balkendiagramm erstellst und die Beschriftungen im Balken darstellen möchtest, wähle in den Formatierungsoptionen die Position "Innerhalb" für die Datenbeschriftungen.

  • Kreisdiagramm: Um ein Excel-Kreisdiagramm zu beschriften, kannst du die Datenbeschriftungen ebenfalls über das Pluszeichen aktivieren und anpassen, um die prozentualen Anteile anzuzeigen.


Tipps für Profis

  • Nutze VBA für wiederkehrende Aufgaben, um Zeit zu sparen und Fehler zu minimieren.
  • Experimentiere mit verschiedenen Diagrammtypen (wie Blasendiagramm oder Tortendiagramm), um die beste Visualisierung für deine Daten zu finden.
  • Achte darauf, dass der Diagrammfont gut lesbar ist und zur Präsentation passt.

FAQ: Häufige Fragen

1. Wie kann ich die Datenbeschriftung in einem Diagramm ändern?
Du kannst die Datenbeschriftungen in Excel über die rechten Maustaste-Menüoptionen oder durch VBA ändern.

2. Warum wird die Schriftgröße der Datenbeschriftung nicht angepasst?
Stelle sicher, dass du die richtige Datenreihe und den richtigen Punkt im Diagramm ausgewählt hast, bevor du die Schriftgröße änderst.

3. Wie füge ich Datenbeschriftungen zu einem Kreisdiagramm hinzu?
Klicke auf das Diagramm, aktiviere die Datenbeschriftungen über das Pluszeichen und wähle die gewünschte Position für die Beschriftungen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige