Thema: Bedingte Formatierungen zählen


Seite durchsuchen:
Home


zurück zur Übersicht

Diskussionsgruppe: Tabellenkalkulation

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:
http://www.gehabe.de/excel.zip


Vielen Dank für die Hilfe !!!

Von: gehabe Datum: 14.05.2007, 15:42

alle Antworten zu dieser Frage




Antwort 1 von Hajo_Zi vom 14.05.2007, 15:56
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 vom 14.05.2007, 16:13
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 vom 14.05.2007, 16:28
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 vom 14.05.2007, 16:35
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 vom 14.05.2007, 16:41
Geht irgendwie nicht.

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

Danke

Antwort 6 von nighty vom 14.05.2007, 16:51
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 vom 14.05.2007, 16:53
hi all :-)

ich teste aber gerne :-)

schick mir eine mustertabelle

an oberley@t-online.de mit eindeutigen betreff

gruss nighty

Antwort 8 von nighty vom 14.05.2007, 16:56
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 vom 14.05.2007, 17:01
hi all :-)

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

gruss nighty

Antworten der Gruppe: Tabellenkalkulation
www.supportnet.de







Office 365 stellt vertraute Microsoft Office-Tools für die Zusammenarbeit und Produktivität über die Cloud bereit. So können alle ganz einfach von nahezu überall zusammenarbeiten und auf E-Mails, Webkonferenzen, Dokumente und Kalender zugreifen.