Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
692to696
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
692to696
692to696
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Diagramm Säulen einfärben
07.11.2005 10:01:54
Mola
Hallo geschätztes Forum,
hatte mir mit Eurer Hilfe dieses Diagramm per Makro erstellen lassen.
Jetzt möchte ich noch, dass wenn die Werte die 100% Marke durchbrechen, dass die Balken rot eingefärbt werden. Es gibt zwar einiges in der Recherche zu diesem Thema - habe ich auch schon versucht - nur gelingt es mir einfach nicht. Könnte mir hier jemand nochmal helfen?
Vielen Dank im voraus!
Gruß
Mola

Sub Diagramm()
Dim cht As ChartObject
Dim tmpstr, tmpstr1 As String, l!, t!
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
End With
.HasLegend = False
.Location Where:=xlLocationAsObject, Name:="JKTL"
.ChartArea.Font.Size = 6
End With
End With
Application.SendKeys "{esc}"
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm Säulen einfärben
07.11.2005 15:52:21
Herbert
hallo Mola,
ein Beispiel:


Function dp_färben()
Dim pkt As Point
With ActiveSheet.ChartObjects(1).Chart
           .SeriesCollection(1).HasDataLabels = True
           
        For Each pkt In .SeriesCollection(1).Points
             If pkt.DataLabel.Text > 100 Then
                pkt.Interior.ColorIndex = 3
             Else
                pkt.Interior.ColorIndex = 43
             End If
        Next
        
           .SeriesCollection(1).HasDataLabels = False
End With
End Function
     
gruß Herbert
Anzeige
AW: Diagramm Säulen einfärben
07.11.2005 16:48:16
Mola
Hallo Herbert,
Danke für Deine Antwort + Hilfe.
Trotzdem - ich bekomme es einfach nicht gebacken. Es läuft einfach nicht. Schreibe ich die Prozedur in den Code passiert nix. Was muss ich denn alles anpassen? (habe jetzt nur "Diagramm3" reingeschrieben) Dann habe ich es mit Call ... versucht und Deinen Schnipsel angehängt - auch negativ...
Was nun? Aufgeben?
Gruß
Mola
AW: Diagramm Säulen einfärben
07.11.2005 16:58:08
Herbert
hallo Mola,
aufgeben ist normalerweise nicht gut...
wahrscheinlich hast du "On Error Resume Next" im Code stehen...
wenn ja,dann deaktivieren...
ist das Diagramm auch am aktiven Blatt ?
hast du mehr als eine Datenreihe ?
gruß Herbert
Anzeige
AW: Diagramm Säulen einfärben
07.11.2005 17:08:24
Mola
Hallo Herbert,
on error resume next habe ich hier nicht drin, Diagramm ist auch auf dem aktiven Blatt.
Meine Datenreihe definiert sich über einen Namen, welcher sich widerum auf die Zellen bezieht. Insgesamt nur 1 Datenreihe. Vermute aber, dass es trotzdem daran liegt.
Wie spreche ich die Datenreihe denn an - doch mit "SeriesCollection(1)" - oder muss ich die anpassen?
Ich versuche es einfach noch mal...
Danke und Gruß
Mola
AW: Diagramm Säulen einfärben
07.11.2005 17:29:56
Herbert
falls es nicht funkt,lade ein Beispielmappe hoch,
wo es nicht funkt...
gruß Herbert
AW: Diagramm Säulen einfärben
07.11.2005 17:35:35
Mola
nix, da tut sich rein gar nicht....
kann es daran liegen, dass meine Datenreihe Prozentwerte sind?
Gruß
Mola
Anzeige
AW: Diagramm Säulen einfärben
07.11.2005 17:48:49
Mola
Warum klappt es so nicht?
Muss ein richtig schöner Anfänger Fehler sein!

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 .SeriesCollection(1).Points
If pkt.DataLabel.Text > 100 Then
pkt.Interior.ColorIndex = 3
Else
pkt.Interior.ColorIndex = 43
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

Anzeige
AW: Diagramm Säulen einfärben
07.11.2005 19:41:03
Herbert
hallo Mola,
es ist in der Tat ein "schöner" Fehler...
du hast die Schleife ja in die "With-Anweisung" eingebaut !
darum stand "SeriesCollection(1)" doppelt...
Userbild
gruß Herbert
AW: Diagramm Säulen einfärben
08.11.2005 09:32:39
Mola
Hallo Herbert,
erstmal vielen Dank für Deine super Hilfe und Geduld! Ich hatte es gestern abend gleich nochmal ausprobiert und musste dann doch entnervt "aufgeben". Habe das Thema oben nochmal neu aufgemacht. Hoffe das geht i.O.!
Schönen Tag und nochmals vielen Dank für Deinen Support!
Gruß
Mola
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige