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