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

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

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...
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
Geschlossen, o.T.
09.09.2005 17:09:07
Eleni
o.T.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige