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

Makro nur für gefilterte und eingeblendete Zeilen

Makro nur für gefilterte und eingeblendete Zeilen
19.03.2015 12:41:30
flotschuk
Hey,
ich sitz momentan leider gerade etwas aufm Schlauch.
Ich habe eine Tabelle mit deren Werte ich ein Säulen-Diagramm befülle. Die Färbung der Säulen ist dabei abhängig von bestimmten Tabellenwerten. Für diese Färbung habe ich ein Makro geschrieben, dass soweit auch funktioniert. Allerding möchte ich nun in der Tabelle ein paar Werte rausfiltern und ein paar ausblenden. Dadurch funktioniert meine Färbung allerdings nicht mehr, da das Makro weiterhin die ausgeblendeten bzw rausgefilterten Wert miteinbezieht. Wie bekomme ich es hin, dass nur die aktuell eingeblendeten Zeilen für die Färbung übernehme. Unten mal mein Code den ich bisher verwende. Habs schon mit ActiveSheet.Cells.SpecialCells(12).Activate und mit ner if schleife mit row.hidden, aber hat beides nicht wirklch funktioniert.
Kann mir jemand weiterhelfen?
Sub OIFärbenProjectBridge()
Dim i As Long
With Worksheets("project bridge").ChartObjects("Diagramm 1").Activate
With ActiveChart.SeriesCollection(2)
For i = 1 To .Points.Count
Select Case Worksheets("AE_Analysedaten").Cells(i + 4, 3)
Case Is = "91_Abgeschlossen"
.Points(i).Interior.Color = RGB(0, 176, 80)
Case Is = "9_Var.teile zurück"
.Points(i).Interior.Color = RGB(0, 176, 80)
Case Is = "8_C&M"
.Points(i).Interior.Color = RGB(0, 176, 80)
Case Is = "7_Geliefert"
.Points(i).Interior.Color = RGB(0, 176, 80)
Case Is = "6_Verkauft"
.Points(i).Interior.Color = RGB(0, 176, 80)
Case Is = "5_Hot"
.Points(i).Interior.Color = RGB(255, 0, 0)
Case Is = "4_Projected"
.Points(i).Interior.Color = RGB(0, 176, 240)
Case Is = "Open"
.Points(i).Interior.Color = RGB(255, 192, 0)
Case Is = "Target"
.Points(i).Interior.Color = RGB(45, 96, 145)
End Select
Next
End With
End With
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro nur für gefilterte und eingeblendete Zeilen
19.03.2015 13:01:59
fcs
Hallo flotschuk,
folgende Anpassung (ungetestet) könnte funktionieren.
Gruß
Franz
Sub OIFärbenProjectBridge()
Dim i As Long, lOffSet As Long, ZelleStart As Range
i = 0
Set ZelleStart = Worksheets("AE_Analysedaten").Cells(4, 3)
With Worksheets("project bridge").ChartObjects("Diagramm 1").Activate
With ActiveChart.SeriesCollection(2)
For lOffSet = 1 To .Points.Count
If ZelleStart.Offset(lOffSet, 0).EntireRow.Hidden = False Then
i = i + 1
Select Case ZelleStart.Offset(lOffSet, 0)
Case Is = "91_Abgeschlossen"
.Points(i).Interior.Color = RGB(0, 176, 80)
Case Is = "9_Var.teile zurück"
.Points(i).Interior.Color = RGB(0, 176, 80)
Case Is = "8_C&M"
.Points(i).Interior.Color = RGB(0, 176, 80)
Case Is = "7_Geliefert"
.Points(i).Interior.Color = RGB(0, 176, 80)
Case Is = "6_Verkauft"
.Points(i).Interior.Color = RGB(0, 176, 80)
Case Is = "5_Hot"
.Points(i).Interior.Color = RGB(255, 0, 0)
Case Is = "4_Projected"
.Points(i).Interior.Color = RGB(0, 176, 240)
Case Is = "Open"
.Points(i).Interior.Color = RGB(255, 192, 0)
Case Is = "Target"
.Points(i).Interior.Color = RGB(45, 96, 145)
End Select
End If
Next
End With
End With
End Sub

Anzeige
AW: Makro nur für gefilterte und eingeblendete Zeilen
19.03.2015 14:01:07
flotschuk
Hallo Franz,
danke schon mal für den Lösungsvorschlag. Funktioniert allerdings noch nicht 100%tig. Speziell im unteren Bereich der Tabelle übernimmt es nicht die richtige Färbung, wenn ich Zeilen ausblende oder einen Filter setze. "Open" und "Target" steht ganz unten in der Tabelle und da funktioniert die Färbung dann nicht mehr, woran kann das liegen?
Vielen Dank schon mal

AW: Makro nur für gefilterte und eingeblendete Zeilen
19.03.2015 14:35:15
fcs
Hallo,
wahrscheinlich gibt es Zeilen die nie im Diagramm dargestellt werden - unabhäng davon, ob die Zeilen eingeblendet sind oder nicht.
Neues Spiel neues Glück. Ich hab das Makro jetzt so angepasst, dass in den Analysedaten jede Zelle in Spalte C ab Zeile 5 (Unterhalb der Startzelle) bis zur letzten Zeile mit Daten in Spalte C ab gearbeitet wird.
Gruß
Franz
Sub OIFärbenProjectBridge()
Dim i As Long, ZelleStart As Range
Dim lZeile As Long, lZeile_1 As Long, lZeile_L As Long
Dim wksData As Worksheet
Dim objChart As Chart
i = 0
Set wksData = Worksheets("AE_Analysedaten")
With wksData
Set ZelleStart = .Cells(4, 3) 'Zelle C4
'Zeile nach der Startzelle (= 1. Zeile, die im Diagramm  dargestellt sein könnte)
lZeile_1 = ZelleStart.Row + 1
'letzte sichtbare Zelle mit Inhalt in Spalte C
lZeile_L = .Cells(.Rows.Count, ZelleStart.Column).End(xlUp).Row
End With
'zu bearbeitendes Diagramm setzen - günstiger als über Activate zu arbeiten
Set objChart = Worksheets("project bridge").ChartObjects("Diagramm 1").Chart
'Datenpunkte in 2. Diagrammreihe formatieren
With objChart.SeriesCollection(2)
'Zellen in Spalte C abarbeiten
For lZeile = lZeile_1 To lZeile_L
'prüfen, ob Zeile ausgeblendet
If wksData.Rows(lZeile).Hidden = False Then
'Zeile sichtbar, Zähler für Datenpunkt erhöhen
i = i + 1
'Zellwert in Spalte C vergleichen und Farbe des Datenpunktes setzen
Select Case wksData.Cells(lZeile, ZelleStart.Column).Value
Case Is = "91_Abgeschlossen"
.Points(i).Interior.Color = RGB(0, 176, 80)
Case Is = "9_Var.teile zurück"
.Points(i).Interior.Color = RGB(0, 176, 80)
Case Is = "8_C&M"
.Points(i).Interior.Color = RGB(0, 176, 80)
Case Is = "7_Geliefert"
.Points(i).Interior.Color = RGB(0, 176, 80)
Case Is = "6_Verkauft"
.Points(i).Interior.Color = RGB(0, 176, 80)
Case Is = "5_Hot"
.Points(i).Interior.Color = RGB(255, 0, 0)
Case Is = "4_Projected"
.Points(i).Interior.Color = RGB(0, 176, 240)
Case Is = "Open"
.Points(i).Interior.Color = RGB(255, 192, 0)
Case Is = "Target"
.Points(i).Interior.Color = RGB(45, 96, 145)
End Select
End If
Next
End With
End Sub

Anzeige
AW: Makro nur für gefilterte und eingeblendete Zeilen
19.03.2015 14:46:00
flotschuk
Hi Franz,
jetzt scheints zu funktionieren. Du bist der wahnsinn! Danke für die schnelle Hilfe.
Werde noch ein bisschen weiter an dem Makro basteln, da ich noch ein paar Anpassungen brauche, ich hoffe mal, dass ich das auch so hin bekomme.
Gruß
Flo

329 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige