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

Farbteppich über nicht ausgeblendeten Bereich

Farbteppich über nicht ausgeblendeten Bereich
21.04.2015 17:38:18
Peter
Guten Tag
Mit nachfolgendem Code lege ich einen Farbteppich über die selektierten Zellen.
Nun möchte ich einen weiteres Makro, das mir im selektierten Bereich nur die eingeblendeten Zellen einfärbt.
Ich habe mir folgenden Lösungsansatz überlegt:
Zuweisung der nicht ausgeblendeten Zeilennummern des selektierten Bereichs an eine Variable
Zusätzlich die Farben 0-2-4-6 logisch in dieser Variable "verknüpfen" (die Zeilen 1-3-5 werden nicht eingefärbt)
dann die entsprechenden Zeilen, im Bereich der Selektion, einfärben.
Kann mir da jemand weiterhelfen - oder auf einen besseren Lösungsansatz hinweisen?
Danke und Gruss, Peter
Sub Farbteppich_Selection()
Dim rCell As Range, rBereich As Range
Set rBereich = Selection
For Each rCell In rBereich
Select Case rCell.Row Mod 6
Case 2:     rCell.Interior.Color = 14994616     '''' hell-blaue Füllung
Case 4:     rCell.Interior.Color = 10092543    ''' hell-gelbe Füllung
Case 0:     rCell.Interior.Color = 11851260    ''' hell-braune Füllung
Case Else:  rCell.Interior.Color = xlNone
End Select
Next
'On Error GoTo 0
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Farbteppich über nicht ausgeblendeten Bereich
21.04.2015 17:48:25
Michael
Hallo Peter,
Du fragst nach "hidden" ab:

For Each rCell In rBereich
If Not (rCell.Rows.Hidden Or rCell.Columns.Hidden) Then
Select Case rCell.Row Mod 6
Case 2:     rCell.Interior.Color = 14994616     '''' hell-blaue Füllung
Case 4:     rCell.Interior.Color = 10092543    ''' hell-gelbe Füllung
Case 0:     rCell.Interior.Color = 11851260    ''' hell-braune Füllung
Case Else:  rCell.Interior.Color = xlNone
End Select
End If
Next
Schöne Grüße,
Michael

AW: Farbteppich über nicht ausgeblendeten Bereich
21.04.2015 17:49:41
Nepumuk
Hallo,
so:
Option Explicit

Public Sub Farbteppich_Selection()
    Dim rCell As Range
    For Each rCell In Selection.SpecialCells(xlCellTypeVisible)
        Select Case rCell.Row Mod 6
            Case 2: rCell.Interior.Color = 14994616 '''' hell-blaue Füllung
            Case 4: rCell.Interior.Color = 10092543 ''' hell-gelbe Füllung
            Case 0: rCell.Interior.Color = 11851260 ''' hell-braune Füllung
            Case Else: rCell.Interior.Color = xlNone
        End Select
    Next
End Sub

Gruß
Nepumuk

Anzeige
AW: Farbteppich über nicht ausgeblendeten Bereich
22.04.2015 11:47:38
Peter
Hallo zusammen
Vielen Dank.
Ich habe in meinem Beitrag nicht ganz klar formuliert, was das Ziel ist. Dies ist aus der hochgeladenen Datei ersichtlich.
https://www.herber.de/bbs/user/97227.htm
Anwendungszweck:
Ich habe eine Liste, die ich nach unterschiedlichen Kriterien filtere. Anschliessend lege ich das Farbmuster über die gefilterte Liste. Dieser Farbteppich sollte dann immer gleich aussehen - egal welche Zeilen ausgeblendet sind.
Ist das möglich?
Grus, Peter

AW: Farbteppich über nicht ausgeblendeten Bereich
22.04.2015 14:09:54
Nepumuk
Hallo,
teste mal:
Public Sub Farbteppich_Selection()
    Dim objCell As Range, lngRow As Long, lngIndex As Long
    With Selection
        For lngRow = 1 To .Rows.Count
            If Not .Rows(lngRow).Hidden Then
                lngIndex = lngIndex + 1
                Select Case lngIndex Mod 6
                    Case 2: .Range(.Cells(lngRow, 1), .Cells(lngRow, .Columns.Count)).Interior.Color = 14994616 ''' hell-blaue Füllung
                    Case 4: .Range(.Cells(lngRow, 1), .Cells(lngRow, .Columns.Count)).Interior.Color = 10092543 ''' hell-gelbe Füllung
                    Case 0: .Range(.Cells(lngRow, 1), .Cells(lngRow, .Columns.Count)).Interior.Color = 11851260 ''' hell-braune Füllung
                    Case Else: .Range(.Cells(lngRow, 1), .Cells(lngRow, .Columns.Count)).Interior.Color = xlNone ''' keine Füllung
                End Select
            End If
        Next
    End With
End Sub

Das sollte erheblich schneller sein als dein alter Code da ich nur die Zeilen durchlaufe und nicht die Spalten. Hat aber den Nachteil dass ausgeblendete Spalten, so es sie gibt, auch eingefärbt werden.
Gruß
Nepumuk

Anzeige
AW: Farbteppich über nicht ausgeblendeten Bereich
22.04.2015 14:31:49
Peter
Hallo Nepumuk
Danke. Das geht wirklich sehr schnell! Und es gibt mir auch eine Idee, wie ich meine gefilterten Daten doch noch so eingefärbt haben könnte, wie ich mir das vorstelle.
Allerdings stimmen die Bereiche noch nicht ganz
Wenn ich Q3:V9 selektiere und den Code laufen lasse, wird AG6:AL10 eingefärbt.
Gruss, Peter

AW: Farbteppich über nicht ausgeblendeten Bereich
22.04.2015 14:54:47
Nepumuk
Hallo,
mein Fehler, der Bezugspunkt vor Range muss weg:
Option Explicit

Public Sub Farbteppich_Selection()
    Dim objCell As Range, lngRow As Long, lngIndex As Long
    With Selection
        For lngRow = 1 To .Rows.Count
            If Not .Rows(lngRow).Hidden Then
                lngIndex = lngIndex + 1
                Select Case lngIndex Mod 6
                    Case 2: Range(.Cells(lngRow, 1), .Cells(lngRow, .Columns.Count)).Interior.Color = 14994616 ''' hell-blaue Füllung
                    Case 4: Range(.Cells(lngRow, 1), .Cells(lngRow, .Columns.Count)).Interior.Color = 10092543 ''' hell-gelbe Füllung
                    Case 0: Range(.Cells(lngRow, 1), .Cells(lngRow, .Columns.Count)).Interior.Color = 11851260 ''' hell-braune Füllung
                    Case Else: Range(.Cells(lngRow, 1), .Cells(lngRow, .Columns.Count)).Interior.Color = xlNone ''' keine Füllung
                End Select
            End If
        Next
    End With
End Sub

Gruß
Nepumuk

Anzeige
AW: perfekt, Danke (owT)
22.04.2015 15:06:40
Peter

AW: Farbteppich über nicht ausgeblendeten Bereich
22.04.2015 16:18:41
Peter
Hallo Nepumuk
So habe ich das Problem mit den ausgeblendeten Zeilen gelöst - damit der Farbteppich so aussieht, also gäbe es die ausgeblendeten Zeilen gar nicht.
Gruss, Peter
Public Sub Farbteppich_Selection_nur_gefilterte_Zeilen()
Dim objCell As Range, lngRow As Long, lngIndex As Long, lngNotHidden As Long
lngNotHidden = 0
With Selection
For lngRow = 1 To .Rows.Count
If Not .Rows(lngRow).Hidden Then
lngNotHidden = lngNotHidden + 1
lngIndex = lngIndex + 1
Select Case lngNotHidden Mod 6
Case 2: Range(.Cells(lngRow, 1), .Cells(lngRow, .Columns.Count)).Interior. _
Color = 14994616 ''' hell-blaue Füllung
Case 4: Range(.Cells(lngRow, 1), .Cells(lngRow, .Columns.Count)).Interior. _
Color = 10092543 ''' hell-gelbe Füllung
Case 0: Range(.Cells(lngRow, 1), .Cells(lngRow, .Columns.Count)).Interior. _
Color = 11851260 ''' hell-braune Füllung
Case Else: Range(.Cells(lngRow, 1), .Cells(lngRow, .Columns.Count)). _
Interior.Color = xlNone ''' keine Füllung
End Select
End If
Next
End With
End Sub

Anzeige
AW: Farbteppich über nicht ausgeblendeten Bereich
22.04.2015 16:42:13
Nepumuk
Hallo,
außer einer zusätzlichen Variablen die du mitschleppst sehe ich keinen Unterschied lngIndex und lngNotHidden haben den selben Wert.
Gruß
Nepumuk

AW: Farbteppich über nicht ausgeblendeten Bereich
22.04.2015 16:43:12
Peter
.. habe auch gerade gemerkt, dass ich einem Irrtum erlegen bin. Sorry.
Gruss, Peter

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige