Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1072to1076
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

gestapelte Balken Beschriftung

gestapelte Balken Beschriftung
30.04.2009 14:09:52
Joachim
Hallo,
ich habe ein Diagramm mit max. 6 übereinander gestapelte Balken, Datenbeschriftung "Wert". Manchmal fällt eine Datenreihe aus und es bleibt die "0" als Wert stehen.
Frage:
kann ich per VBA die "0" abfangen und unterdrücken?
Kann ich die Position des Wertes (oberhalb des Balkens und nicht mittig) auch per VBA ändern?
Oder bedeutet das alles Handarbeit, sobald sich die Werte verändern?
Gruss
Joachim

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: gestapelte Balken Beschriftung
04.05.2009 10:57:28
fcs
Hallo Joachim,
die Datenbeschriftung der 0-Werte kann per VBA entsprechend formatieren (ausblenden).
Die mittige Position der Beschriftung läßt sich nicht so ohne weiteres ändern, da es standardmäßig nur die mittige Beschriftung gibt.
Die VBA-programmierung wäre hier schon sehr kompliziert, da sehr viele Einflußwerte berücksichtig werden müßten (Skalierung der Y-Achse, Größe der Einzelwerte der anderen Datenpunkte, Nummer des Datenpunktes, Wert des Datenpunkts selber, Höhe/Position der Diagrammfläche).
Hier ein VBA-Beispiel für das Ausblenden der 0-Wert Beschriftungen.
Gruß
Franz

'Einfügen im VBA-Editor in einem allgemeien Modul
'Erstellt mit Excel 2003
Sub DiagramFormatieren()
'Datenbeschriftung für 0-Werte ausblenden
Dim Diag As Chart, Reihe As Series, Punkt As Point, intI As Integer
Set Diag = ActiveSheet.ChartObjects(1).Chart ' In Worksheet eingebettetes Blatt
'  Set Diag = ActiveChart 'Diagramm auf separatem Blatt
With Diag
For Each Reihe In Diag.SeriesCollection
For intI = 1 To Reihe.Points.Count
Set Punkt = Reihe.Points(intI)
With Punkt
If Reihe.Values(intI) = 0 Then
.HasDataLabel = False
Else
.HasDataLabel = True
'festlegen was angezeigt werden soll
.ApplyDataLabels Type:=xlDataLabelsShowValue, AutoText:=True, _
LegendKey:=False, ShowSeriesName:=False, ShowCategoryName:=False, _
ShowValue:=True, ShowPercentage:=False, ShowBubbleSize:=False, _
Separator:=" "
'Formate der Datenbeschriftung festlegen
With .DataLabel
.NumberFormatLinked = True
.Font.ColorIndex = xlColorIndexAutomatic 'weiß
.Font.Bold = False 'fett
.AutoScaleFont = True
End With
End If
End With
Next
Next
End With
End Sub


Etwas weiter automatisieren kannst du noch in dem du bei Wertänderungen in der Tabelle das Diagramm automatisch aktualiseren läßt.


'im VBA Editor unter der Tabelle mit den Daten einfügen
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:C7")) Is Nothing Then
'A1:C7 = Datenbereich des Diagramms
Call DiagramFormatieren
End If
End Sub


Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige