Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
908to912
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
908to912
908to912
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Bedingte Formatierung via Makro

Bedingte Formatierung via Makro
28.09.2007 15:41:53
Andreas
Hallo liebe Herber Fans,
ich habe ein Makro, welches in Abhängigkeit von der Zellfarbe (keine Farbe!) auf die Zelle eine bedingte Formatierung hinterlegen soll (Wenn Zellwert = 0, Schriftfarbe = weiß)

Sub bedformattest()
Dim c As Range
Application.ScreenUpdating = False
For Each c In Selection
'If c.Font.Bold = True Then
c.Interior.ColorIndex = xlNone
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
Formula1:="0"
Selection.FormatConditions(1).Font.ColorIndex = 2
End If
Next c
Application.ScreenUpdating = True
End 

Sub
Das funktioniert soweit auch wunderbar. Aber die bedingte Formatierung wird leider für alle  _
Zellen in der Selektion angewandt. Auch für die, die hellgelb oder hellblau ausgefüllt sind (colorindex = 34/ 37). Was mache ich falsch, daß die Voraussetzung Colorindex = xlnone nicht beachtet wird?
Vielen Dank für Eure Ideen.
Grüße, Andreas Hanisch

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bedingte Formatierung via Makro
28.09.2007 16:15:00
Hajo_Zi
Hallo Andreas,
Du musst jede einzelne Zelle der Selection durch gehen wie im folgendem Beispiel.

Sub Datum_Umwandeln_in_TTMMJJJJ()
'* H. Ziplies                                     *
'* 25.09.05                                       *
'* erstellt von Hajo.Ziplies@web.de               *
'* http://Hajo-Excel.de/
'   Datum umwandeln von 01.02.05 in  01022005 (TTMMJJ)
'   für den markierten Bereich
Dim RaBereich As Range
For Each RaBereich In Selection
If IsDate(RaBereich) Then
'           damit Change Ereiognis nicht ausgelöst wird
Application.EnableEvents = False
RaBereich.Value = Format(RaBereich, "ddmmyyyy")
RaBereich.NumberFormat = "00000000"
Application.EnableEvents = True
End If
Next RaBereich
End Sub



Anzeige
AW: Bedingte Formatierung via Makro
28.09.2007 16:48:04
Andreas
Hallo Hajo,
danke für Deinen Gedankenanstoß. Ich habe es nun hinbekommen. Mit frischen Ideen und nach einem Kaffee geht es doch gleich viel besser. Der Fehler ist mir schon einmal passiert... Ich sage "for each c in selection", aber für alle nachfolgenden Aktionen verwende ich selection.*** anstelle von c.***.
Nun sitzt es hoffentlich...
Dank und Gruß aus Berlin,
Andreas Hanisch

AW: Bedingte Formatierung via Makro
28.09.2007 17:25:01
Bernd
Hi Andreas,
ich habe mal dein Makro ausprobiert (s. File), aber es klappt nicht. Ich selektiere die Zellen (bei mir gelb) und starte das Makro - aber nichts geschieht.
Wenn die Zelle den Wert Null hat, soll doch die Schriftfarbe weiss werden, oder?
Schau doch mal bitte in das File rein, was ich hier falsch gemacht habe.
https://www.herber.de/bbs/user/46424.xls
Danke vorab.
Bernd

Anzeige
AW: Bedingte Formatierung via Makro
28.09.2007 17:37:02
Andreas
Hallo Bernd,
anbei der Code, der bei mir lief:

Sub bedformattest()
Dim c As Range
Application.ScreenUpdating = False
For Each c In Selection
'If c.Font.Bold = True Then
If c.Interior.ColorIndex = 6 Then
c.FormatConditions.Delete
c.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, _
Formula1:="0"
c.FormatConditions(1).Font.ColorIndex = 2
End If
Next c
Application.ScreenUpdating = True
End Sub


Das Problem war, daß Du noch auf Colorindex = None gestellt hattest. Aber wenn Du die Zellen gelb hinterlegt hast, dann muß es bei Deinem Gelbton heißen Colorindex = 6. Außerdem hatte ich leider noch die Zeile 'If c.Font.Bold = True Then
drin. Mit dieser Zeile könntest Du die bedingte Formatierung greifen lassen, wenn die Buchstaben in der Zelle fett geschrieben sind. Der kleine' am Anfang der Zeile führt dazu, daß die Zeile "auskommentiert" ist. D.h. man sieht den Befehl, aber VBA setzt ihn nicht um. So kann ich schnell umschalten zwischen "führe aus, wenn Buchstaben fett" oder "führe aus, wenn Zellfärbung bstimmten Wert hat". Einfach durch versetzten des '.
Des Weiteren stand im Code kein "IF" und "Then" drin. Aber "Wenn", "dann" ist für diesen Code wie für viele andere zwingend notwendig.
Such hier im Forum doch einmal nach dem Excel Farbindex. Dann kannst du sehen, welche numerischen Werte all die anderen Farben in Excel haben.
Ich hoffe, Dir geholfen zu haben.
Grüße, Andreas

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige