Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

If-Vergleich

Forumthread: If-Vergleich

If-Vergleich
09.09.2005 15:41:21
Eleni
Hi Forum,
Habe eine If-Schleife in einem Makro, um 2 Datumseinträge zu vergleichen und ggf. das eine Datum gelb zu markieren. In "K1" steht immer das aktuelle (heutige) Datum und i ist jedes Datum in der Spalte Q. Wenn das Datum in Q plus 1 Monat gleich dem heutigen Datum ist oder es überschreitet, dann soll die Zelle via unten stehendem Makro gelb markiert werden. Leider funktioniert es nicht. Bin für jeden Lösungsvorschlag dankbar.
If i "" And i = (Year("K1").Month(("K1") + 1).Day("K1")) Then
i.Interior.ColorIndex = 6
End If
Ciao, Eleni
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: If-Vergleich
09.09.2005 15:52:04
ingoG
Hallo Eleni,
Du könntest das ganze auch mit einem benutzerdefinierten Format handeln:
Q1 markieren und in Formel ist:
=und(q1&lt&gt"";datum(Jahr(q1);monat(q1)+1;Tag(q1))&gt$K$1) Format Gelb
und dann das Format nach unten kopieren...
Gruß Ingo
PS eine Rückmeldung wäre nett...
Anzeige
AW: If-Vergleich
09.09.2005 16:09:11
Eleni
Hi Ingo,
Danke für den Hinweis, aber ich habe mehrere Bedingungen abzuklappern, weswegen die bedingte Formatierung nicht die optimalste Lsg. ist. Trotzdem vielen Dank.
Ciao, Eleni
AW: If-Vergleich
09.09.2005 15:52:15
Ralf
Hi Eleni,
nur mal als Hinweis, If ist keine Schleife.
Ich gehe mal davon aus, dass Deine Variable i so aussehen könnte: 10.10.05
Richtig? Und da Day(Range("K10")) meinetwegen 18 zurückgibt und Du aber die Punkte noch brauchst, musst Du die mit & verknüpfen. Deine Schreibweise geht nicht. Das sähr dann so aus: i = year(Range("K10")) & "." & month(range("K10")) & "." & day(Range("K10"))
Ach ja, bei Dir stehr also 05.09.08 für den 8.9.05! Stelle sicher, dass das auch wirklich in der Reihenfolge so steht!
Ciao, Ralf
Anzeige
AW: If-Vergleich
09.09.2005 16:06:43
Eleni
Hi Ralf,
Danke für den Tipp. Habe den Code umgebaut, jedoch funktioniert er nicht. Habe mal meinen For-each-code angehängt, vielleicht kannst du mir noch mal helfen.
Danke, Eleni
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
'Ampel
Dim i
Sheets("BM-Datenbank").Activate
For Each i In Range("Q3", Cells(Rows.Count, 17).End(xlUp))
'Rot
If i <> "" And i <= Range("K1") Then
i.Interior.ColorIndex = 3
'Gelb
ElseIf i <> "" And i = Day(Range("K1")) & "." & Month(Range("K1")) + 1 & "." & Year(Range("K1")) Then
i.Interior.ColorIndex = 6
'Grün
ElseIf i <> "" And i > Range("K1") Then
i.Interior.ColorIndex = 4
ElseIf i = "" Then
i.Interior.ColorIndex = xlNone
End If
Next i
End Sub

Anzeige
AW: If-Vergleich
09.09.2005 16:29:21
Eleni
Hi Ralf,
Danke für den Tipp. Habe den Code umgebaut, jedoch funktioniert er nicht. Habe mal meinen For-each-code angehängt, vielleicht kannst du mir noch mal helfen.
Danke, Eleni
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
'Ampel
Dim i
Sheets("BM-Datenbank").Activate
For Each i In Range("Q3", Cells(Rows.Count, 17).End(xlUp))
'Rot
If i <> "" And i <= Range("K1") Then
i.Interior.ColorIndex = 3
'Gelb
ElseIf i <> "" And i = Day(Range("K1")) & "." & Month(Range("K1")) + 1 & "." & Year(Range("K1")) Then
i.Interior.ColorIndex = 6
'Grün
ElseIf i <> "" And i > Range("K1") Then
i.Interior.ColorIndex = 4
ElseIf i = "" Then
i.Interior.ColorIndex = xlNone
End If
Next i
End Sub

Anzeige
AW: If-Vergleich
09.09.2005 16:56:32
Ralf
Hallo Eleni,
Achtung! Habe die Bereiche meinen Bedürfnissen angepasst (Spalte Q war mir so weit weg). Ansonsten funktioniert es bei mir.

Private Sub Ampel()
'Ampel
Dim i, Tag As Date
Tag = Day(Range("K1")) & "." & Month(Range("K1")) + 1 & "." & Year(Range("K1"))
Sheets("BM-Datenbank").Activate
For Each i In Range("A1:C10")  'Hier wieder Deinen Bereich eintragen!
If i <> "" Then
'Rot
If i < Tag Then
i.Interior.ColorIndex = 3
'Gelb
ElseIf i = Tag Then
i.Interior.ColorIndex = 6
'Grün
ElseIf i > Tag Then
i.Interior.ColorIndex = 4
ElseIf i = "" Then
i.Interior.ColorIndex = xlNone
End If
End If
Next i
End Sub

Hier: http://vb-anton.de/index.php?action=artikel&cat=353482&id=32&artlang=de noch ein anderes Ampelbeispiel.
Ciao, Ralf
Anzeige
Danke
09.09.2005 17:05:30
Eleni
Hi Ralf,
Danke für die Hilfe. Mein Code sieht jetzt so aus und funktioniert prima. Schönes WE, Eleni

Private Sub Worksheet_Change(ByVal Target As Range)
'Ampel
Dim i, Tag As Date
Tag = Day(Range("K1")) & "." & Month(Range("K1")) + 1 & "." & Year(Range("K1"))
Sheets("BM-Datenbank").Activate
For Each i In Range("Q3", Cells(Rows.Count, 17).End(xlUp))
If i <> "" Then
'Rot
If i <= Range("K1") Then
i.Interior.ColorIndex = 3
'Gelb
ElseIf i > Range("K1") And i <= Tag Then
i.Interior.ColorIndex = 6
'Grün
ElseIf i > Tag Then
i.Interior.ColorIndex = 4
ElseIf i = "" Then
i.Interior.ColorIndex = xlNone
End If
End If
Next i
End Sub

Anzeige
Korrektur
09.09.2005 17:02:06
Ralf
Sorry, war noch ein Fehler drin. So ist es ok:
If i "" Then
'Rot
If i i.Interior.ColorIndex = 3
'Gelb
ElseIf i = Tag Then
i.Interior.ColorIndex = 6
'Grün
ElseIf i > Tag Then
i.Interior.ColorIndex = 4
End If
Else
i.Interior.ColorIndex = xlNone
End If
Ciao, Ralf
Anzeige
Geschlossen, o.T.
09.09.2005 17:09:07
Eleni
o.T.
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige