Das Archiv des Excel-Forums
Datum markieren bei mehreren Bedingungen
Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Betrifft: Datum markieren bei mehreren Bedingungen
von: Claus
Geschrieben am: 19.09.2003 21:26:13
Guten Abend,
mein Problem von gestern hat sich noch weiter präzisiert...ich habe folgende Tabelle (die "echte" umfaßt 17000 Einträge!):
| A | B | C | D |
1 | aktuelles Datum |
Start-Termin |
End-Termin | |
2 | 19.09.2003 |
21.08.2003 |
20.09.2003 | ok |
3 | |
10.11.2003 |
10.12.2003 | ok |
4 | |
31.08.1999 |
30.09.1999 | ok |
5 | | | |
ok |
6 | | 29.08.2003 | 28.09.2003 |
|
7 | | 22.08.2003 | 21.09.2003 |
|
8 | | 02.12.2002 | 01.01.2003 |
ok |
9 | | 05.03.2003 | 04.04.2003 |
|
In Spalte A1 steht per VBA Code immer das aktuelle Datum. Nun sollen per Button, der auf dem Tabellenblatt plaziert ist, all die Spalten rot bzw. gelb markiert werden, die folgende Eigenschaft haben:
ROT: Wenn die Differenz vom aktuellen Datum (A1) zum Datum in Spalte C kleiner als 5 Tage ist und in Spalte C nicht "ok" steht...
GELB: Wenn die Differenz vom aktuellen Datum zum Datum in Spalte C kleiner als 10 Tage ist und in Spalte C nicht "ok" steht...
Sobald aber in Spalte C "ok" steht, soll nicht farblich markiert werden. Ich brauche eine solche Funktion als VBA Code (!!!), da ich mit User-Forms einigermaßen gut klar komme und dann den Code modifizieren möchte.
Vielen Dank für eure Hilfe!!!
Betrifft: AW: Datum markieren bei mehreren Bedingungen
von: Hajo_Zi
Geschrieben am: 19.09.2003 21:31:37
Hallo Claus
es gibt in Excel keine Spalte A1 dies ist eine Zelle.
zu Rot vermute ich mal Du meinst die aktuelle Zeile und nicht die gesamte Spalte.
Warum nicht Format, bedingte Formatierung. Du hast ja nicht mehr als 3 Bedingungen.
Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Zurzeit gibt es wieder Probleme mit der E-Mail Benachrichtigung.
Ich bekomme Mails zu Beiträgen an denen ich nicht beteiligt bin und zusätzlich noch Mails zu meinen eigenen Beiträgen.
Das Problem mit den eigenen Benachrichtigung kann gelöst werden durch Lösche und Neuanmelden. Dieses möchte ich aber nicht jeden Tag machen.
Um dieses Problem erstmal zu beseitigen habe ich die automatische Mailbenachrichtigung abgeschaltet.
Aus diesem Grunde ist es dem Zufall überlassen ob auf Rückfragen Antworten von mir kommen.
http://home.media-n.de/ziplies/
Betrifft: AW: Datum markieren bei mehreren Bedingungen
von: Claus
Geschrieben am: 19.09.2003 21:43:04
Hallo Hajo,
ich hätte gerne den VBA-Code wegen der Übersichtlichkeit...
Bei der Bedingten Formatirung kann man schnell Funktionen, die in der DAtei alle so vorkommen, übersehen. DAnn hätte ich viel VBA Code und irgendwo noch Bedingte Formatierung. Sicher kann ich das mit dem MAroeditor alles Aufzeichen und dann als VBA-Code weiterverwenden. Aber sind Dinge wie "=(C2-HEUTE())<6" wirklich auf allen Rechnern mit allen Sprach-Konfigurationen zu verwenden? Das Tool soll zur Terminverfolgung dienen und eben deshalb möglichst leicht und vor allem Zentral abzuändern sein. Und dazu bietet sich der VBA-Code nunmal besser als die Bedingte Formatierung...
Betrifft: AW: Datum markieren bei mehreren Bedingungen
von: Ramses
Geschrieben am: 19.09.2003 21:55:07
Hallo
probier mal das Makro
Sub Mark_Cells()
Dim Cr As Long, xVal As Integer, i As Long
Cr = Range("A65536").End(xlUp).Row
Range(Cells(1, 1), Cells(Cr, 4)).Interior.ColorIndex = xlNone
For i = 1 To Cr
xVal = Cells(i, 3) - Cells(i, 1)
Debug.Print xVal
Select Case xVal
Case Is < 5
If UCase(Cells(i, 4)) <> "OK" Then
Range(Cells(i, 1), Cells(i, 4)).Interior.ColorIndex = 3
End If
Case Is < 10
If UCase(Cells(i, 4)) <> "OK" Then
Range(Cells(i, 1), Cells(i, 4)).Interior.ColorIndex = 6
End If
End Select
Next i
End Sub
Code eingefügt mit Syntaxhighlighter 1.16
Gruss Rainer
Betrifft: Kleiner Fehler noch...
von: Claus
Geschrieben am: 19.09.2003 22:12:11
Hallo Ramses,
Danke für den guten Ansatz. Allerdings gibt es einen Laufzeitfehler beim Subtrahieren an dieser Stelle:
xVal = Cells(i, 3) - Cells(i, 1)
Das liegt wohl daran, das es sich bei dem Ergebnis um ein Datum handelt. Wie muss man das den Formatieren, damit eine Interer-Zahl herauskommt?
Betrifft: Kein Fehler...
von: Ramses
Geschrieben am: 19.09.2003 22:16:53
Hallo,
.... wenn du mit VBA gut rauskommst, sollte das doch kein Problem sein ;-))
Das Makro funktioniert und ist getestet,..... allerdings habe ich in Zeile 1 nichts stehen :-))
Ändere
For i = 1 to Cr
in
For i = 2 to Cr
Dann beginnt das Makro erst in Zeile 2. Da kannst du Variablen deklarieren wie du willst,.... wenn du Text von Text abziehen willst geht es in die Hose *lol*
Gruss Rainer
Betrifft: AW: Kein Fehler...
von: Claus
Geschrieben am: 19.09.2003 22:18:45
DAnke, so klappt es.
Leider kenn ich mich mit VBA einigermaßen aus. DAs kann ich aber nirgends angeben. Nur gut oder garnicht...
Schönes Wochenende und vielen Dank!
Betrifft: Nachtrag....
von: Ramses
Geschrieben am: 19.09.2003 22:21:54
Hallo
Datum sind immer Long-Integer-Zahlen. Sie werden nur durch Formatierung zu einem verständlichen Datum.
Wenn ich wie in deinem Beispiel Zwei so nahe Datumswerte voneinander subtrahiere kommen aber immer Integer-Zahlen raus.
Eigentlich reicht hierfür auch Byte,... aber das nur am Rande.
Eine Idee kommt mir noch:
Steht dein Datum NUR in A2 dann muss die Anweisung lauten
xVal = Cells(i, 3) - Cells(2, 1)
Gruss Rainer
Betrifft: AW: Nachtrag....
von: Claus
Geschrieben am: 19.09.2003 22:56:50
Danke, habe ich bereits berücksichtigt - das mit dem Datum in Zelle A2. Tja, VBA Kenntnisse sind eben doch "gut"...lol
Gruß aus Hamburg
Betrifft: AW: Datum markieren bei mehreren Bedingungen
von: Franz Pölt
Geschrieben am: 20.09.2003 10:17:28
Hallo Claus,
du scheinst ein echter VBA-Fan zu sein, denn:
17000 Einträge per VBA zu überprüfen wenn man nicht muss ist IMHO Unsinn!
Hier eine Lösung ohne VBA (bedingte Formatierung):
Excel Jeanie HTML
Bedingte Formatierungen der Tabelle |
Zelle | Nr.: / Bedingung | Format | C2 | 1. / Formel ist =UND(C2>0;C2-$A$2<6;$D2<>"ok") | Abc | C2 | 2. / Formel ist =UND(C2>0;C2-$A$2<11;$D2<>"ok") | Abc | C3 | 1. / Formel ist =UND(C3>0;C3-$A$2<6;$D3<>"ok") | Abc | C3 | 2. / Formel ist =UND(C3>0;C3-$A$2<11;$D3<>"ok") | Abc | C4 | 1. / Formel ist =UND(C4>0;C4-$A$2<6;$D4<>"ok") | Abc | C4 | 2. / Formel ist =UND(C4>0;C4-$A$2<11;$D4<>"ok") | Abc | C5 | 1. / Formel ist =UND(C5>0;C5-$A$2<6;$D5<>"ok") | Abc | C5 | 2. / Formel ist =UND(C5>0;C5-$A$2<11;$D5<>"ok") | Abc | C6 | 1. / Formel ist =UND(C6>0;C6-$A$2<6;$D6<>"ok") | Abc | C6 | 2. / Formel ist =UND(C6>0;C6-$A$2<11;$D6<>"ok") | Abc | C7 | 1. / Formel ist =UND(C7>0;C7-$A$2<6;$D7<>"ok") | Abc | C7 | 2. / Formel ist =UND(C7>0;C7-$A$2<11;$D7<>"ok") | Abc | C8 | 1. / Formel ist =UND(C8>0;C8-$A$2<6;$D8<>"ok") | Abc | C8 | 2. / Formel ist =UND(C8>0;C8-$A$2<11;$D8<>"ok") | Abc | C9 | 1. / Formel ist =UND(C9>0;C9-$A$2<6;$D9<>"ok") | Abc | C9 | 2. / Formel ist =UND(C9>0;C9-$A$2<11;$D9<>"ok") | Abc |
|
Excel Tabellen einfach im Web darstellen Excel Jeanie HTML 2.0 Download
Servus aus dem Salzkammergut
Franz
Betrifft: Ich lerne gerade...Vorzüge d. Bed. Formatierung
von: Claus
Geschrieben am: 20.09.2003 10:37:27
...habe ich mich bis jetzt nicht mit beschäftigt. Aber das hat sich nun geändert!!!
Excel-Beispiele zum Thema " Datum markieren bei mehreren Bedingungen"