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

Bedingte Formatierung mit vba

Bedingte Formatierung mit vba
08.07.2005 09:26:41
B
Guten morgen allerseits,
folgendes Problem, mit dem code unten lasse ich in die Eintragsspalten meines Schichtplaners die Ferien eintragen, indem die Eintragszellen mit der hintergrunfarbe hellgrau belegt werden. das funktioniert soweit auch.
Sub Ferien_ein()
Dim f As Integer
Dim Anfang As Date
Dim Ende As Date
For f = 530 To 534
Anfang = Worksheets("Fs-Planer").Cells(f, 1)
Ende = Worksheets("Fs-Planer").Cells(f, 2)
For z = 6 To 36 ' =Zeilen 6 bis 36
For s = 1 To 45 Step 4 '=Spalten A, E, E, ... , AS

If Cells(z, s) >= Anfang And Cells(z, s) Cells(z, s + 3).Interior.ColorIndex = 15 'hellgrau
End If
Next s
Next z
Next f
End Sub
mit dem nächsten code den ich im Blatt stehen habe werden Eintragszellen bei bestimmten Einträgen mit bestimmten Hintergrundfarben gefärbt, was auch funktioniert aber wenn ich in irgendeiner Eintragszelle die löschen Taste betätige werden meine hellgrau hinterlegten Ferienzellen wieder weiß, wie kann ich das vermeiden ?

Private Sub Worksheet_Change(ByVal Target As Range)
For z = 6 To 36 ' =Zeilen 6 bis 36
For s = 1 To 45 Step 4 '=Spalten A, E, E, ... , AS
Select Case Worksheets("Fs-Planer").Cells(z, s + 3)
Case Is = "0,1"
Cells(z, s + 3).Interior.ColorIndex = 36  'Hellgelb
Case Is = "0,05"
Cells(z, s + 3).Interior.ColorIndex = 19 'Beige
Case Is = "25%+10%"
Cells(z, s + 3).Interior.ColorIndex = 46 'Orange
Case Is = "0,25"
Cells(z, s + 3).Interior.ColorIndex = 46 'Orange
Case Is = ""
Cells(z, s + 3).Interior.ColorIndex = Value 'nix
End Select
Next s
Next z
End Sub

gruss Bryan

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bedingte Formatierung mit vba
08.07.2005 10:06:12
ede
warum alle Zellen durchlaufen?
versuchs doch einfach mit der aktuellen

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target
Case Is = "0,1"
Target.Interior.ColorIndex = 36  'Hellgelb
Case Is = "0,05"
Target.Interior.ColorIndex = 19 'Beige
Case Is = "25%+10%"
Target.Interior.ColorIndex = 46 'Orange
Case Is = "0,25"
Target.Interior.ColorIndex = 46 'Orange
Case Is = ""
Target.Interior.ColorIndex = Value 'nix
End Select
End Sub

viel erfolg
AW: Bedingte Formatierung mit vba
08.07.2005 10:14:38
Bryan
hallo, in den anderen zellen können die selben werte stehen, die allerdings keine zuordnung haben, deshalb lasse ich immer nur die 4 spalte des monats prüfen.
gruss bryan
Anzeige
dann mach es so
08.07.2005 10:18:46
ede

Private Sub Worksheet_Change(ByVal Target As Range)
For z = 6 To 36 ' =Zeilen 6 bis 36
For s = 1 To 45 Step 4 '=Spalten A, E, E, ... , AS
oldColorIndex = Cells(z, s + 3).Interior.ColorIndex
Select Case Worksheets("Fs-Planer").Cells(z, s + 3)
Case Is = "0,1"
Cells(z, s + 3).Interior.ColorIndex = 36  'Hellgelb
Case Is = "0,05"
Cells(z, s + 3).Interior.ColorIndex = 19 'Beige
Case Is = "25%+10%"
Cells(z, s + 3).Interior.ColorIndex = 46 'Orange
Case Is = "0,25"
Cells(z, s + 3).Interior.ColorIndex = 46 'Orange
Case Is = ""
Cells(z, s + 3).Interior.ColorIndex = oldColorIndex 'nix
End Select
Next s
Next z
End Sub

Anzeige
AW: erweitert
08.07.2005 10:15:08
ede
vieleicht noch so erweitern

Private Sub Worksheet_Change(ByVal Target As Range)
odlColorIndex = Target.Interior.ColorIndex
Select Case Target
Case Is = "0,1"
Target.Interior.ColorIndex = 36  'Hellgelb
Case Is = "0,05"
Target.Interior.ColorIndex = 19 'Beige
Case Is = "25%+10%"
Target.Interior.ColorIndex = 46 'Orange
Case Is = "0,25"
Target.Interior.ColorIndex = 46 'Orange
Case Is = ""
'Target.Interior.ColorIndex = Value 'nix
Target.Interior.ColorIndex = odlColorIndex 'nix
End Select
End Sub

AW: erweitert
08.07.2005 10:56:08
Bryan
Hallo ede,
das sieht so schon ganz gut aus, geht das vieleicht auch so, das man aus "odlColorIndex" den colorindex vor der letzten eingabe definiere, wenn ich jetzt zum beispiel 10% eingebe färbt sich die zelle hellgelb wenn ich die eingabe lösche bleibt die zelle hellgelb sie soll aber die farbe vor der zelländerung annehmen.
zb.:
Alter farbindex = farbindex vor zellwertänderung
keine ahnung ob sowas geht
gruss Bryan
Anzeige
AW: erweitert
08.07.2005 12:28:51
ede
versuch es mal mit dieser version
Sub Ferien_ein()
Dim f As Integer
Dim Anfang As Date
Dim Ende As Date
For f = 530 To 534
Anfang = Worksheets("Fs-Planer").Cells(f, 1)
Ende = Worksheets("Fs-Planer").Cells(f, 2)
For z = 6 To 36 ' =Zeilen 6 bis 36
For s = 1 To 45 Step 4 '=Spalten A, E, E, ... , AS
If Cells(z, s) >= Anfang And Cells(z, s) Cells(z, s + 3).Interior.ColorIndex = 15 'hellgrau
End If
Next s
Next z
Next f
'Farben gleich mit setzen
For z = 6 To 36 ' =Zeilen 6 bis 36
For s = 1 To 45 Step 4 '=Spalten A, E, E, ... , AS
Select Case Worksheets("Fs-Planer").Cells(z, s + 3)
Case Is = "0,1"
Cells(z, s + 3).Interior.ColorIndex = 36 'Hellgelb
Case Is = "0,05"
Cells(z, s + 3).Interior.ColorIndex = 19 'Beige
Case Is = "25%+10%"
Cells(z, s + 3).Interior.ColorIndex = 46 'Orange
Case Is = "0,25"
Cells(z, s + 3).Interior.ColorIndex = 46 'Orange
End Select
Next s
Next z
End Sub
--bei Änderung einer Zelle

Private Sub Worksheet_Change(ByVal Target As Range)
odlColorIndex = Target.Interior.ColorIndex
Select Case Target
Case Is = "0,1"
Target.Interior.ColorIndex = 36  'Hellgelb
Case Is = "0,05"
Target.Interior.ColorIndex = 19 'Beige
Case Is = "25%+10%"
Target.Interior.ColorIndex = 46 'Orange
Case Is = "0,25"
Target.Interior.ColorIndex = 46 'Orange
Case Is = ""
Call Ferien_ein
End Select
End Sub

viel erfolg,
bin ab 12:45 nicht mehr online, rückmeldung bis dahin wäre schön
Anzeige
AW: erweitert
08.07.2005 12:38:42
ede
sorry, war noch ein kleiner fehler drin
hier teil 1 nochmal

Sub Ferien_ein()
Dim f As Integer
Dim Anfang As Date
Dim Ende As Date
For f = 530 To 534
Anfang = Worksheets("Fs-Planer").Cells(f, 1)
Ende = Worksheets("Fs-Planer").Cells(f, 2)
For z = 6 To 36 ' =Zeilen 6 bis 36
For s = 1 To 45 Step 4 '=Spalten A, E, E, ... , AS
If Cells(z, s) >= Anfang And Cells(z, s) <= Ende Then
Cells(z, s + 3).Interior.ColorIndex = 15 'hellgrau
Else
Cells(z, s + 3).Interior.ColorIndex = 0 ' weiss
End If
Next s
Next z
Next f
'Farben gleich mit setzen
For z = 6 To 36 ' =Zeilen 6 bis 36
For s = 1 To 45 Step 4 '=Spalten A, E, E, ... , AS
Select Case Worksheets("Fs-Planer").Cells(z, s + 3)
Case Is = "0,1"
Cells(z, s + 3).Interior.ColorIndex = 36  'Hellgelb
Case Is = "0,05"
Cells(z, s + 3).Interior.ColorIndex = 19 'Beige
Case Is = "25%+10%"
Cells(z, s + 3).Interior.ColorIndex = 46 'Orange
Case Is = "0,25"
Cells(z, s + 3).Interior.ColorIndex = 46 'Orange
'Case Else
'Cells(z, s + 3).Interior.ColorIndex = 0 ' ohne
End Select
Next s
Next z
End Sub

Anzeige
immer noch offen
09.07.2005 18:52:02
Bryan
Hallo,
vileicht hat ja noch jemand eine Iddee zu meinem Prob.
gruss Bryan
AW: immer noch offen
09.07.2005 21:45:33
Hajo_Zi
Hallo Bryan,
da Du einen neuen Beitrag zu diesem Problem angefangen hast nehme ich diesen mal aus offen. Die Lösung ist in der Recherche gut zu finden, wenn das Problem in mehreren Beiträgen behnadlt wird. Die Wahrscheinlichjkeit geht gegen Null.
Dein Verfahren zur Lösungsfindung lehne ich ab, darum kommt auch keine Lösung von mir.
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


Anzeige

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige