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

Bed. Format. Doppelte Werte aber andere Spalte

Bed. Format. Doppelte Werte aber andere Spalte
25.02.2016 14:07:12
Theo
Hallo zusammen,
man kann ja über VBA bedingte Formatierungen programmieren. Habe zum Beispiel in A1 bis A10 werte stehen. Jetzt steht z.B in A3 und A7 der selbe Wert. Jetzt färbt mir die Bedingte Formatierung A3 und A7.
Ich hätte gerne dass er mir zusätzlich, oder auch nur, B3 und B7 färbt.
hab mal folgenden Code aufgezeichnet:
Sub Makro3()
' Makro3 Makro
Range("A1:A10").Select
Selection.FormatConditions.AddUniqueValues
Selection.FormatConditions(1).DupeUnique = xlDuplicate
With Selection.FormatConditions(1).Font
.Color = -16751204
.TintAndShade = 0
End With
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 10284031
.TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bed. Format. Doppelte Werte aber andere Spalte
25.02.2016 17:48:03
Herbert
Hallo,
dann mach doch in dieser Anweisung aus "Range("A1:A10")" einfach " Range("A1:B10")".
Servus

Ich glaube kaum, dass das gemeint ist, ...
25.02.2016 19:22:17
Luc:-?
Herbert,
denn Theo schreibt „…zusätzlich, oder auch nur, B3 und B7 färbt“. Zusätzlich zu den per BedingtFormat gefärbten Zellen A2 und A7 wohlgemerkt, nicht abhängig vom Inhalt von Spalte B, was dein Vorschlag bewirken würde.
Tja, Theo,
dafür ist dieses BedingtFormat nicht vorgesehen! Aber es gibt in Xl-Versionen ab 14/2010 eine brauchbare Alternative, die allerdings aus 2 Gründen nur unter Zuhilfenahme einer benannten Fml fktioniert. Dabei ist egal, ob du das manuell oder per Makro einträgst. Nur mit VBA könntest du die Farbe direkt auf die andere Spalte übertragen, aber dazu muss auch ein Ereignis ausgelöst wdn, wenn das automatisch erfolgen soll. Dann ist folgender Vorschlag beinahe einfacher:
1. Die Färbung von B ist hierbei nur zusätzlich und per BedingtFormat möglich.
2. BedingtFormat von A anlegen, denn sein Ergebnis wird im per benannter Fml gestützten BedingtFormat von B benötigt.
3. Mit B (und A) korrespondierende benannte Fml anlegen (hier Daten ab Zeile 2):
ZFarbe:=AUSWERTEN("CellColor("&ADRESSE(ZEILE($A2);1)&")")
Hier ist schon ein Grund für die benFml zu sehen → XLM-Fkt AUSWERTEN, deren Ersatz durch eine entsprd UDF nichts hieran ändern, stattdessen aber idR FmlText-Angabe in US-Notation erfordern würde.
4. BedingtFormat-Regel in B anlegen:
Regel1:=UND(ZFarbedezimalerAuszeichnungsFarbwertltRegelinA;1^(JETZT()*A2)=1)
Eine (evaluierende) UDF kann nicht in einer RegelFml angegeben wdn (2.Grund für benFml). Sie ist aber erforderlich, um die gezeigten ZellFarben von A feststellen zu können. Das ist nur per Evaluierung möglich, da Xl die Nutzung der neuen objekt­bildenden Range-Eigenschaft DisplayFormat in in Fmln angewendeten UDFs mit #WERT!* quittiert (Texte überprüft Xl nicht dahingehend).
Die volatile XlFkt in der RegelFml ist erforderlich, um stete Neuberechnung zu veranlassen. Eine Volatilität der UDF nutzt bei der erforderlichen xl-„überlistenden“ Methode nichts!
* MS befürchtet wohl anderenfalls Xl-Instabilitäten.
5. Die benötigte UDF CellColor ist trivial und kann natürlich durch eine komfortablere ersetzt wdn:
Rem Ermittelt gezeigte ZellFarbe (auch aus BedingtFormat, erst ab Xl14)
Function CellColor(Zelle As Range)
CellColor = Zelle.DisplayFormat.Interior.Color
End Function
Vollzugsmeldung erwünscht! Gruß, Luc :-?
Besser informiert mit …

Anzeige
Na, und dann gibt's natürlich doch noch ...
26.02.2016 03:12:16
Luc:-?
…eine einfachere Lösung, Theo,
auch ganz ohne BedingtFormat in Spalte A, sondern ggf nur in B (letzter MenüPkt Fml verwenden):
BedFmt in B2 - Regel1:=ZÄHLENWENN($A$2:$A$11;$A2)>1
Auf dieser Basis könnte man per benannter Fml mit (Link unten) UDF-Einsatz* ggf auch unterschiedliche Farben für unterschiedliche doppelte Werte in der BedingtFormatierung festlegen:
relPosit:=VSplit(VJoin(WENN(ZÄHLENWENN($A$2:$A$11;$A$2:$A$11)>1;VERGLEICH($A$2:$A$11;$A$2:$A$11;0);"");;-1);;1)
Im BedingtFormat dann entsprd viele Regeln anlegen, zB:
B2-Regel1:=VERGLEICH(WENN(ZÄHLENWENN($A$2:$A$11;$A2)>1;VERGLEICH($A2;$A$2:$A$11;0);"");relPosit;0)=1
B2-Regel2:=VERGLEICH(WENN(ZÄHLENWENN($A$2:$A$11;$A2)>1;VERGLEICH($A2;$A$2:$A$11;0);"");relPosit;0)=2
B2-Regel3:=VERGLEICH(WENN(ZÄHLENWENN($A$2:$A$11;$A2)>1;VERGLEICH($A2;$A$2:$A$11;0);"");relPosit;0)=3
B2-Regel4:=VERGLEICH(WENN(ZÄHLENWENN($A$2:$A$11;$A2)>1;VERGLEICH($A2;$A$2:$A$11;0);"");relPosit;0)>3
Mittels TintAndShade-Skalierung könnte sogar eine Abstufung der gleichen Grundfarbe erreicht wdn.
* Die BedingtFormatierung scheint im Ggsatz zu benannten Fmln keine UDFs aus einem AddIn zu mögen, auch wenn es aktiviert ist. Unter Xl9/2k hatte ich damit keine Probleme! Aber so wird die Regel ja auch übersichtlicher… ;-)
Vollzugsmeldung erwünscht! Gruß, Luc :-?
Besser informiert mit …
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige