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

Bedingte Formatierung

Bedingte Formatierung
12.05.2014 11:34:33
Werner
Hallo Experten,
ich brauche mal wieder Hilfe.
Ich habe eine Tabelle mit den Spalten Name, Vorname, Geburtsdatum und Ergebnis.
Jetzt möchte ich die Zellen über bedingte Formatierung mit einer Formel einfärben bei denen Name, Vorname und Geburtsdatum identisch ist. Das aber nur dann wenn in der Spalte Ergebnis ein Ja steht und auch nur dann, wenn dies mindestens 3x so vorkommt.
Eine kleine Musterdatei habe ich angehängt.
https://www.herber.de/bbs/user/90634.xlsx
Im Voraus bereits herzlichen Dank
Gruß Werner

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

Betreff
Datum
Anwender
Anzeige
AW: Bedingte Formatierung
12.05.2014 11:59:53
fcs
Hallo Werner,
markiere den Zellbereich D7:G13.
Dann in der bedingten Formatierung folgende Formel verwenden.
=SUMMENPRODUKT(($D7=$D$7:$D$13)*($E7=$E$7:$E$13)*($F7=$F$7:$F$13)*($G7=$G$7:$G$13)*($G7="ja")*1) >=3
Bei einem anderen Zellbereich muss du die Formel entsprechend anpassen.
Gruß
Franz

Anzeige
SUMME() reicht schon, ...
12.05.2014 12:15:34
der
Hallo Franz,
... also nur

=(SUMME(--($D7&$E7&$F7=$D$7:$D$13&$E$7:$E$13&$F$7:$F$13))>2)*($G7="ja")

denn bedingte Formatierung wertet das auch so als Matrixformel aus.
Gruß Werner
.. , - ...

Richtig, aber falsch...
12.05.2014 12:41:21
EtoPHG
Werner,
Deine Formel liefert falsche Ergebnisse (ändere einen Hans auf Peter ;-), wenn schon:
=(SUMME(--($D7&$E7&$F7&"ja"=$D$7:$D$13&$E$7:$E$13&$F$7:$F$13&$G$7:$G$13))>2)*($G7="ja")

Gruess Hansueli

richtig, ...
12.05.2014 13:40:20
der
Hallo Hansueli,
... dass hatte ich vorhin nicht zu Ende bedacht :-(
Danke :-)
Gruß Werner
.. , - ...

Anzeige
AW: SUMME() reicht schon, ...
12.05.2014 12:42:03
Werner
Hallo Franz,
deine Formel mit dem Summenprodukt funktioniert genau so wie ich es haben möchte, Danke für die Hilfe.
Vielleicht könntest du mir da noch etwas weiter helfen. Ich möchte die Formel per Makro eintragen. Wie muss ich sie dafür umschreiben?
Gruß
Werner

AW: SUMME() reicht schon, ...
12.05.2014 14:07:40
fcs
Hallo Werner,
ich hab es jetzt mal im Makro möglichst allgemein formuliert.
im Code musst du noch einige Zeilen anpassen, in denen die Zelle mit dem 1. Namen festgelegt wird und die letzte Spalte, die bedingt formatiert werden soll.
Gruß
Franz
Sub Bedingtformatieren()
' Bedingtformatieren Makro
Dim rng As Range
Dim row1 As Long, rowL As Long
Dim Spalte1 As Long, SPlateL As Long
Dim C1 As String, C2 As String, C3 As String, C4 As String
Dim strFormel As String
Dim wks As Worksheet
Set wks = ActiveSheet
With wks
'Bereich definieren, der bedingt formatiert werden soll
Spalte1 = 4                 'Spalte D - 1. zu formatierende Spalte - ggf. anpassen
SpalteL = 7                 'Spalte G - letzte zu formatierende Spalte - ggf. anpassen
row1 = 7                    '1. zur formatieende Zeile - ggf. anpassen
'letzte zu formatierende Zeile ermitteln
rowL = .Cells(.Rows.Count, Spalte1).End(xlUp).Row
'zu formatierender Bereich
Set rng = .Range(.Cells(row1, Spalte1), .Cells(rowL, SpalteL))
End With
'Buchstaben der in der Formel erscheinenden Spalten
With rng.Range("a1")
C1 = fncBuchstabeSpalte(.Offset(0, 0))
C2 = fncBuchstabeSpalte(.Offset(0, 1))
C3 = fncBuchstabeSpalte(.Offset(0, 2))
C4 = fncBuchstabeSpalte(.Offset(0, 3))
End With
'=SUMMENPRODUKT(($D7=$D$7:$D$13)*($E7=$E$7:$E$13)*($F7=$F$7:$F$13)*($G7=$G$7:$G$13)*($G7="ja")* _
1) >=3
strFormel = "=SUMMENPRODUKT(" _
& "($" & C1 & row1 & "=$" & C1 & "$" & row1 & ":$" & C1 & "$" & rowL & ")" _
& "*($" & C2 & row1 & "=$" & C2 & "$" & row1 & ":$" & C2 & "$" & rowL & ")" _
& "*($" & C3 & row1 & "=$" & C3 & "$" & row1 & ":$" & C3 & "$" & rowL & ")" _
& "*($" & C4 & row1 & "=$" & C4 & "$" & row1 & ":$" & C4 & "$" & rowL & ")" _
& "*($" & C4 & row1 & "=""ja"")*1) >=3"
'    Debug.Print strFormel
With rng
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, Formula1:=strFormel
.FormatConditions(.FormatConditions.Count).SetFirstPriority
.FormatConditions(1).StopIfTrue = False
With .FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
End With
End With
End Sub
Function fncBuchstabeSpalte(Zelle As Range) As String
'ermittelt Buchstabe(n) der Spalte in der Adresse der 1. Zelle eines Bereiches
Dim strText As String
strText = Zelle.Range("a1").Address(True, False, xlA1)
strText = Left(strText, InStr(1, strText, "$") - 1)
fncBuchstabeSpalte = strText
End Function

Anzeige
AW: SUMME() reicht schon, ...
12.05.2014 14:52:24
Werner
Danke an alle Helfer,
ich habe es jetzt so hinbekommen wie ich es wollte.
Benutzt habe ich die Summenproduktformel von Franz und in ein Makro eingebaut mit Hilfe des dezenten Hinweises von Hansueli -Makrorekorder, da hätte ich auch von alleine drauf kommen können!!!
Danke an Alle!!!
Gruß Werner

AW: Bedingte Formatierung
12.05.2014 12:48:55
EtoPHG
Hallo Werner (der Anfrager, nicht der opa)
Was verstehst du unter in VBA umschreiben?
Wenn du sie als Formel für die bedingte Formatierung eintragen willst, musst du nix an ihr ändern, ausser ggf. die Adressen/Adressbereiche deinen realen Gegebenheiten anpassen.
Du kannst den Makrorekorder brauchen um das mal an deinem Beipiel auszuprobieren!
Gruess Hansueli

Anzeige
Vorsicht bei bed. Formatierung per VBA
12.05.2014 12:56:30
Rudi
Hallo,
bei der Festlegung per VBA ist die aktive Zelle relevant.
Du musst dafür sorgen, dass die erste Zelle des Bereichs aktiv ist. Sonst gibt's nur Blödsinn.
Gruß
Rudi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige