Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Bedingte Formatierungen zählen





Frage

Guten Tag. Ich verzweifele gerade ein wenig, was aber eher daran liegt, dass ich mich bisher noch nicht so intensiv mit Excel beschäftigen musste und nun gleich auch einen Schlag etwas mehr will. Ich erstelle gerade eine Excel Tabelle in der ich verschiedene Daten mit einander vergleichen lasse und wenn ein bestimmtes Datum erreicht ist, sich die Farbe ändert. Soweit hat auch alles gut geklappt und die Formatierungen stehen, nur würde ich nun gerne eine kleine Statistik haben, wie viele rot gefärbte Felder es gibt und wie viele gelbe Felder es in der Spalte gibt. Habe nun schon viel gelesen aber leider nirgendwo das richtige gefunden, daher hoffe ich auf ein wenig Hilfe hier. Ihr könnt Euch die Datei auch gerne mal anschauen: [url]http://www.gehabe.de/excel.zip[/url] Vielen Dank für die Hilfe !!!

Antwort 1 von Hajo_Zi

Hallo Unbekannter,

die bedingte Formatierung auslesen ist das komplizierste was mir bekannt ist. Schaue mal auf diese Seite
Link zur Seite

Der Nachbau der Bedingung ist einfacher.

Gruß Hajo

Antwort 2 von nighty

hi all :-)

wie gewünscht

gruss nighty

schreibweise der formel ist

=BedingungAdd(A1:A3;3)


3 ist dein gesuchter farbindex zur zeit rot

einzufuegen unter

alt+f11 öffnet den vbeditor
einfuegen modul
dort einfuegen

nun ist die neue funktion verfuegbar einfuegen/funktion

Function BedingungAdd(Zellen As Range, farbe As Integer) As Double
Dim Zelle As Range
Dim farben As Integer
Application.Volatile
For Each Zelle In Zellen
farben = GetCellColor(Zelle)
If farben = farbe Then
BedingungAdd = BedingungAdd + 1
End If
Next
End Function
Function GetCellColor(cell As Range) As Integer
Dim i
Dim myVal
Dim myColor As Integer
Dim done As Boolean
On Error Resume Next
Names("testname").Delete
On Error GoTo 0
Application.ReferenceStyle = xlR1C1
myVal = cell.Value
myColor = cell.Interior.ColorIndex
done = False
For i = 1 To cell.FormatConditions.Count
With cell.FormatConditions.Item(i)
If .Type = 1 Then
Select Case .Operator
Case xlBetween
If (myVal >= Evaluate(.Formula1) And myVal <= Evaluate(.Formula2)) _
Or (myVal <= Evaluate(.Formula1) And myVal >= Evaluate(.Formula2)) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlEqual
If myVal = Evaluate(.Formula1) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlGreater
If myVal > Evaluate(.Formula1) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlGreaterEqual
If myVal >= Evaluate(.Formula1) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlLess
If myVal < Evaluate(.Formula1) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlLessEqual
If myVal <= Evaluate(.Formula1) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlNotBetween
If myVal < Evaluate(.Formula1) Or myVal > Evaluate(.Formula2) Then
myColor = .Interior.ColorIndex
done = True
End If
Case xlNotEqual
If myVal <> Evaluate(.Formula1) Then
myColor = .Interior.ColorIndex
done = True
End If
End Select
ElseIf .Type = 2 Then
Names.Add Name:="testname", RefersToR1C1Local:=.Formula1
If Evaluate("testname") Then
myColor = .Interior.ColorIndex
done = True
End If
Names("testname").Delete
Else
MsgBox "Unbekannter Typ: " & .Type, , "PANIC: In Function GetCellColor"
Exit Function
End If
End With
If done Then Exit For
Next
Application.ReferenceStyle = xlA1
GetCellColor = myColor
End Function


Antwort 3 von gehabe

Vielen Dank für die schnelle Hilfe.

Allerdings, wenn ich es einfüge, dann steht dort immer #Name?


Was hab ich falsch gemacht?

Nochmal vielen Dank !!!

Antwort 4 von nighty

hi al :-)

1)
alt+f11 öffnet den vbeditor
einfuegen/modul
dort einfuegen
2)
einfuegen/funktion/benutzerdefiniert/BedingungAdd

=BedingungAdd(Bereich;Farbindex)


z.b.

=BedingungAdd(A1:A3;3)


gruss nighty

Antwort 5 von gehabe

Geht irgendwie nicht.

Kannst du es dir mal runterladen und mal schauen. Habe es aktualisiert !!!

Danke

Antwort 6 von nighty

hi all :-)

wenn es nicht geht ist die bedingung nicht im macrocode integriert,wie hajo es schon sagte ist es recht umfangreich,und dieses makro greift nur bei bestimmten bedingungen,bis jetzt ging es fast immer,dann können nur richtige profis helfen um deine bedingung im code zu erweitern

gruss nighty

Antwort 7 von nighty

hi all :-)

ich teste aber gerne :-)

schick mir eine mustertabelle

an oberley@t-online.de mit eindeutigen betreff

gruss nighty

Antwort 8 von nighty

hi all :-)

hab die datei runtergeladen und funktioniert formel gibt eine 1 zurück da ein rotes feld da ist

gruss nighty

Antwort 9 von nighty

hi all :-)

mit excel 2000 getestet,kleinere versionen weiss ich nicht ob geht und excel 2007 ist ausgeschlossen denk ich

gruss nighty

Antwort 10 von nighty

hi all :-)

laut user gehabe geht es jetzt :-))

gruss nighty

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: