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

Frage zur bedingten Formatierung

Frage zur bedingten Formatierung
ray
Hallo,
ich habe Zellen mit einer bedingten Formatierung belegt, (Wert = andere Zelle).
Wenn Input unzutreffend ist, dann wird die Zelle durch die bed. format. eingefärbt.
Meine Frage:
Kann ich die Zellen zählen, bei denen die Bedingung zutreffend ist bzw. ausgeführt wird, oder kann ich die Zellen zählen, deren Hintergrund nicht weiß bzw. ohne ist?
Viele Grüße aus Hamburg
Ray

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Frage zur bedingten Formatierung
18.08.2010 10:58:39
Ramses
Hallo
"..Kann ich die Zellen zählen, bei denen die Bedingung zutreffend ist ..."
Ja, mit ZÄHLENWENN().
Die Zellen zu zählen deren Farben durch die Bedingten Formatierung verändert wurde, ist ungleich aufwändiger und nur mit VBA möglich.
Das ist ein Beispiel von Jens für die Bedingte Formatierung unter/bis E2003.
Dort sind aber nur 3 Bedingungen möglich. In E2007 gibt es ja fast kein Limit mehr
Sub BedingungeFormatierungErfüllt()
    'von JensF
    Dim C As Range
    Dim x As Long
    Dim Treffer As Boolean
    Dim Nummer As Long
    Dim f As Double
    Set C = ActiveCell
    Application.ReferenceStyle = xlR1C1
    If C.FormatConditions.count = 0 Then
        MsgBox "Keine bedingte Formatierung enthalten"
        Exit Sub
    End If
    
    For x = 1 To C.FormatConditions.count
        With C.FormatConditions(x)
            If .Type = 2 Then 'Formelbedingung
                Debug.Print ActiveCell.FormatConditions(x).Formula1
                Names.Add name:="testname", RefersToR1C1Local:=ActiveCell.FormatConditions(x).Formula1
                If [testname] = True Then
                    Treffer = True
                    Nummer = x
                    Names("Testname").Delete
                Else
                    Names("Testname").Delete
                End If
                Exit For
                ElseIf .Type = 1 Then '"Wert-Ist" Bedingung
                f = CDbl(.Formula1)
                Select Case .Operator
                    Case xlBetween
                        If C.Value >= f And C.Value <= CDbl(.Formula2) Then
                            Treffer = True: Nummer = x: Exit For
                        End If
                    Case xlEqual
                        If C.Value = f Then
                            Treffer = True: Nummer = x: Exit For
                        End If
                    Case xlGreater
                        If C.Value > f Then
                            Treffer = True: Nummer = x: Exit For
                        End If
                    Case xlGreaterEqual
                        If C.Value > f Then
                            Treffer = True: Nummer = x: Exit For
                        End If
                    Case xlLess
                        If C.Value < f Then
                            Treffer = True: Nummer = x: Exit For
                        End If
                    Case xlLessEqual
                        If C.Value <= f Then
                            Treffer = True: Nummer = x: Exit For
                        End If
                    Case xlNotBetween
                        If C.Value <= f Or C.Value >= CDbl(.Formula2) Then
                            Treffer = True: Nummer = x: Exit For
                        End If
                    Case xlNotEqual
                        If C.Value <> f Then
                            Treffer = True: Nummer = x: Exit For
                        End If
                End Select
            End If
        End With
    Next
    If Treffer = True Then
        MsgBox "Bedingung " & Nummer & " ist erfüllt"
    Else
        MsgBox "keine Bedingung erfüllt"
        Exit Sub
    End If
    Application.ReferenceStyle = xlA1
End Sub

Gruss Rainer
Anzeige
zu schwer für mich...
18.08.2010 11:29:24
ray
Danke, aber Dein Beispiel bekomme ich nicht umgebaut.
Kannst Du mir dabei helfen( Dabei zähle ich nicht die formatierung sondern die Werte direkt die auf beiden sheets an gleicher stelle gleichi sein müssen:
sub
Für die Spalten A-Z und die Zeilen 1 - 50 zähle wenn Zelle ist ungleich =INDIREKT("'WildData'!ZS";)
So etwa:
Dim Anzahl as variant
Sub zählen()
For i = 1 to 50
If Worksheets(WildData).Cells(i, 1).Value  Worksheets(WildDataleer).Cells(1, 1).Value Then
Anzahl +1
End if
i = i +1
next i
msgbox"" & Anzahl
End Sub

Wie geht das über alle betreffenden Zeilen/Spalten?
Gruß Ray
Anzeige
AW: zu schwer für mich...
18.08.2010 12:20:51
Ramses
Hallo
Ohne VBA.
Nimm Zählenwenn() in einer Zelle. Infos dazu findest du in der Hilfe
Sub zählen()
    Dim anzahl As Long
    Dim nRow As Long, nCol As Long
    Dim qWks As Worksheet, tWks As Worksheet
    Set qWks = Worksheets("WildData")
    Set tWks = Worksheets("WildDataLeer")
    With qWks
        For nCol = 1 To 24
            For i = 1 To 50
                If .Cells(i, n).Value <> tWks.Cells(i, n).Value Then
                    anzahl = anzahl + 1
                End If
            Next i
        Next nCol
    End With
    Set qWks = Nothing
    Set tWks = Nothing
    MsgBox "" & anzahl
End Sub

Gruss Rainer
Anzeige
Err im Code
19.08.2010 08:07:19
ray
Hallo Rainer,
wollte Dein Code benutzen. Er stopt in der Zeile:
If .Cells(i, n).Value tWks.Cells(i, n).Value Then
''Anwendung oder objektdefinierter Fehler''
was habe ich übersehen?
Gruß Ray
AW: Err im Code
19.08.2010 14:52:21
Ramses
Hallo
Sorry,... nachträglich die Variablen geändert damit sie besser verständlich sind und nicht angepasst
Die Zeile muss heissen
If .Cells(i, nCol).Value tWks.Cells(i, nCol).Value Then
Gruss Rainer
Vielen herzlichen Dank. mGruß oT
20.08.2010 09:16:22
ray
Danke Rainer

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige