Hallo S.,
falls das nicht klappt mit der Grafik, gäbe es alternativ noch eine VBA-Lösung.
Ich als VBA-Mensch würde mir jetzt einfach pro Balken 6 Textfelder nehmen, entsprechend formatieren, geschickt benennen (z.B. "TF_Bl01_1, TF_Bl01_2
") usw. und mir dann eine Funktion schreiben, die die Daten dort reinschreibt und die Balkenbreiten einstellt.
Anliegend ein einfaches Beispiel, wobei die Balkengrafik einfach an ein Range angedockt wird. Da kann man dann auch noch ein transparentes Rechteck drüberlegen oder was immer man möchte.
Hier auch mal etwas Code als Beispiel dazu, kann man natürlich ausbauen oder anders machen.
Code:
Option Explicit
Sub DiagrammAktualisieren()
SetUmfragediagramm "TF_Bl01_", Range("E5:J5"), Range("E3:J3")
End Sub
Function SetUmfragediagramm(sGrafik As String, rBalken As Range, rData As Range)
Dim oShp As Object, rZelle As Object, i As Integer
Dim Wsh As Worksheet
Dim MaxWertData As Currency, MaxWertBlk As Currency, Pkt As Currency
Dim Links As Currency
Set Wsh = rBalken.Cells(1, 1).Parent 'verwendetes Blatt
'Diagrammbreite ermitteln, passend zum angegebenen Range
For Each rZelle In rBalken
MaxWertBlk = MaxWertBlk + rZelle.WIDTH
Next rZelle
'Hundert Prozentwert der Daten ermitteln
For Each rZelle In rData
MaxWertData = MaxWertData + rZelle.value
Next rZelle
Pkt = MaxWertBlk / MaxWertData 'Pixel je Wert
Links = rBalken.Cells(1, 1).Left 'Linke Balkenposition
For i = 1 To 6
With Wsh.Shapes(sGrafik & i)
.Left = Links 'LinkeKästchenposition
.WIDTH = rData.Cells(1, i).value * Pkt 'Kästchenbreite
.Top = rBalken.Cells(1, 1).Top 'Top-Position an Rangevorgabe
.HEIGHT = rBalken.Cells(1, 1).HEIGHT
.TextFrame2.TextRange.Characters.Text = rData.Cells(1, i).value
Links = Links + .WIDTH 'Nächste Kästchenposition
End With
Next i
End Function
_________________________
viele Grüße aus Freigericht ?
Karl-Heinz