ich versuche es nochmal.
Zunächste möchte ich mich aber erstmal bei Herbert H. für seine gestrige Geduld und Hilfe bedanken.
Ich bin der Lösung jetzt auch schon ein bissle näher gekommen. :o) Funktioniert aber leider noch nicht perfekt.
Bei der folgenden "Sub" möchte ich, dass er mir für die Werte, welche über 100% liegen die Säulen im Diagramm rot einfärbt. Leider kann ich es ihm nicht so richtig begreiflich machen. Das Problem liegt noch irgendwo in der For-Anweisung und der Festlegung des IF-Wertes. Trage ich da "20,00%" ein klappt alles prima und er färbt wie gewünscht.
Trage ich da "100,00%" ein geht wieder gar nix. Trage ich ohne "" ein also z.B. 100 geht auch nix. Wenn ich dann mit F5 auslöse bringt er mir genau da einen Fehler:
If pkt.DataLabel.Text >= 100 Then
Woran liegt denn das? Könnt Ihr mir nochmal einen Klaps geben!!!
Vielen Dank und Euch einen schönen Tag!
Gruß
Mola
Sub Diagramm()
Dim cht As ChartObject
Dim tmpstr, tmpstr1 As String, l!, t!
Dim pkt As Point
tmpstr = "=" & ThisWorkbook.Name & "!ADR"
tmpstr1 = "=" & ThisWorkbook.Name & "!PLG"
With Sheets("JKTL")
For Each cht In ActiveSheet.ChartObjects
cht.Delete
Next cht
Range("B11").AutoFilter
Selection.AutoFilter Field:=2, Criteria1:=True
l = .Range("F13").Left: t = .Range("F13").Top
.ChartObjects.Add(l, t, 510, 240).Name = "Diagramm3"
With .ChartObjects("Diagramm3").Chart
.ChartType = xlColumnClustered
.SeriesCollection.NewSeries
.Axes(xlValue).HasMajorGridlines = False
.Axes(xlValue).HasMinorGridlines = False
With .SeriesCollection(1)
.XValues = tmpstr1
.Values = tmpstr
.ApplyDataLabels ShowValue:=True
.DataLabels.Font.Size = 8
For Each pkt In .Points
If pkt.DataLabel.Text >= 100 Then
pkt.Interior.ColorIndex = 3
Else
pkt.Interior.ColorIndex = 6
End If
Next
End With
.HasLegend = False
.Location Where:=xlLocationAsObject, Name:="JKTL"
.ChartArea.Font.Size = 6
End With
End With
Application.SendKeys "{esc}"
End Sub