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

Abfrage Grösser Kleiner per Makro

Abfrage Grösser Kleiner per Makro
Joachim
Hi,
ich habe in der Zelle W1 das heutige Datum drin und frage per Makro ab , in welcher Zeile Cells(i, 20) kleiner ist als W1, wenn das zutrifft, soll die Zelle rot gefärbt werden. Das geht soweit:
If ActiveSheet.Cells(i, 20).Value <> "" And <b>ActiveSheet.Cells(i, 20).Value < Range("W1") </b>Then
Cells(i, 20).Select
Selection.Font.ColorIndex = 6
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
End If
Ich würde nun den Code dahin erweitern, das abgefragt wird:
Wenn Cells(i, 20) mehr als eine Woche vor W1 ist, dann so lassen (weis lassen)
Wenn Cells(i, 20) zwischen 1 und 7 Tage vor W1 ist, dann gelber hintergrund und rote Schrift.
Wenn Cells(i, 20) kleiner W1 dann Roter Hintergrung und gelbe Schrift (wie seither)
Wie mache ich das ?
Seither frage ich nur ab, ob kleiner W1, dann färben
Den Zeitraum 1. Woche vor Ablauf (gelber Hintergrund) hätte ich aber gerne definiert.
Danke für Eure Hilfe
Joachim

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Zellen gemäß Datum färben - Widerspruch...
19.11.2009 17:12:34
NoNet
Hallo Joachim,
definiere bitte die Zeiträume genauer, denn da findet sich ein Widerspruch in Deinen Angaben :
Hier meine Interpretation Deiner Angaben :
Sub DatumsZellenFaerben()
Dim i
For i = 1 To 10
With ActiveSheet.Cells(i, 20)
If .Value  "" And Range("W1") - .Value > 0 Then
.Interior.Pattern = xlSolid
Select Case Range("W1") - .Value
Case 1
.Font.Color = xlNone
.Interior.Color = xlNone
Case 2 To 7
.Font.ColorIndex = 3
.Interior.ColorIndex = 6
Case Is > 7
.Font.ColorIndex = 6
.Interior.ColorIndex = 3
End Select
End If
End With
Next
End Sub
Übrigens benötigt man dazu kein VBA, das könnte man auch per "Bedingte Formatierung" lösen !
Gruß, NoNet
Anzeige
AW: Zellen gemäß Datum färben - Widerspruch...
19.11.2009 20:52:57
Joachim
Hi,
Du hast recht, irgend was stimmt da nicht. Also noch mal zur Deffinition:
Also in W1 steht das aktuelle Datum drin (=heute)
mit der Schleife frage ich nun Cells(i, 20) ab.
Wenn W1 < Cells(i, 20), dann Hintergrund ROT, Schrift GELB
Wenn W1 = Cells(i, 20) oder max.7 Tage kleiner, dann Hintergrund GELB, Schrift ROT
Wenn W1 ab dem 8 Tag (kleiner) denn Hintergrund WEIS.
Also anders gesagt:
die Zellen sind im Prinzip immer weis,
1 Woche, bevor W1 erreicht ist (bis einschliesslich W1, also Datem gleich) wird der Hintergrund Gelb
Sobald Wi überschritten ist, also das Datum in den Zellen grösser als W1 ist, also das Datum angelaufen ist, dan Hintergrunf Rot.
Wie muss ich demnach Dein Code ändern ?
Gruss
Joachim
Anzeige
Immer noch ein Widerspruch...
19.11.2009 23:06:33
NoNet
Hallo Joachim,
der Widerspruch ist immer noch enthalten - Du formulierst 3 mal "Wenn W1" :
Wenn W1 per VBA formuliert : If Cells(i,20)-[W1]>0 then
Wenn W1 = Cells(i, 20) oder max.7 Tage kleiner per VBA formuliert : If Cells(i,20)-[W1]=0 then
Wenn W1 ab dem 8 Tag (kleiner) per VBA formuliert : If Cells(i,20)-[W1]>=8 then
Der erste Fall tritt auch dann ein,wenn die beiden letzten Fälle eintreten, also wenn z.B. [W1] um 6 Tage kleiner ist als Cells(i,20), dann sind die beiden ersten Aussagen korrekt ! - Welche Farbe soll denn dann gewählt werden ?
Gib doch einfach mal ein Beispiel, wenn in W1 z.B. "20.11.2009" steht...
Gruß, NoNet
Anzeige
AW: Immer noch ein Widerspruch...
20.11.2009 09:57:32
Joachim
Hi,
also mal anders formuliert:
in W1 steht immer das heutige Datum drin (= 20.11.2009)
in den verschiedenen Zellen ( Cells(i, 20) ) stehen Termine drin.
Wenn die Termine in den Zellen schon abgelaufen (alles kleiner 20.11.) sind, dann Hintergrund Rot, Schrift gelb.
Wenn die Termine in den Zellenin in max. 7 Tage auslaufen, (20.11 - 27.11) dann Hintergrund gelb, Schrift rot.
Wenn die Termine in den Zellen noch über eine Wochen von Heute (alles Grösser 27.11) entfernt sind, dann alles so lassen.
Passte es nun, komme auch langsam ins straucheln, oder findest Du noch ein Wiederspruch ?
Gruss
Joachim
Gruss Joachim
Anzeige
Kein Widerspruch mehr :-)
20.11.2009 12:45:43
NoNet
Hallo Joachim,
"That's it !" - Jetzt habe ich es kapiert : Ich ging bisher immer davon aus, dass es sich nur um bereits vergangene Daten (Datumsangaben) handelt - aber jetzt schreibst Du auch von zukünftigen Daten - genau DAS macht den Unterschied aus ;-). Hier das passende Makro :
Sub DatumsZellenFaerben()
Dim i
For i = 1 To 20
With ActiveSheet.Cells(i, 20)
.Select
If .Value  "" And Range("W1") > .Value Then
.Interior.Pattern = xlSolid
.Font.ColorIndex = 6
.Interior.ColorIndex = 3
ElseIf .Value - Range("W1") > 7 Then
.Font.ColorIndex = 0
.Interior.ColorIndex = xlNone
ElseIf .Value - Range("W1").Value >= 0 And _
.Value - Range("W1").Value 
Gruß, NoNet
Anzeige
Danke, jetzt passt es :-)
20.11.2009 17:28:02
Joachim
Haben wir es doch noch geschaft :-))
Gruss
Joachim

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige