Ich möchte mit einem Makro immer Die Zeile farbformatieren, in der das aktuelle Datum angegeben ist.
Erst habe ich es mit einem Filter(Datumsfilter: Heute) und „Makro aufnehmen“ versucht. Allerdings markiert das Makro immer nur eine feste Zeile und nicht die
gefilterte…
Hoffe mir kann jemand weiter helfen.
Hallo Dao,
versuche es bitte mal mit der Funktion „Bedingte Formatierung“. Marke den Bereich in dem das Datum stehen könnte. Dann rufe über das Menü die Bedingte Formatierung auf und wähle „Neue Formatierungsregel“. Hier wählst Du bitte „Nur Zellen formatieren, die enthalten…“. Dann sagt Du „Zellwert“ „ist“ „=heute()“ und wählst Deine gewünschte Formatierung aus.
Das sollte eigenlicht reichen und auch unter Excel 2007 funktionieren. Bin mir aber nicht 100% sicher!
Puuuuh, dazu fällt mir wenig ein, zumal ich mich mit Excel 2007 und Filtern wenig auskenne. Etwas ähnliches habe ich mit selektierten Zeilen gemacht (in einer Schleife über alle relevanten Zeilen geprüft, ob die Zeile markiert wurde und dann entsprechend gefärbt), ich weiß aber nicht, ob sich „gefiltert“ ähnlich abfragen lässt.
Viel Erfolg
Rainer
Mit Makros kenne ich mich nicht aus. Mittels VBA könnte man es folgendermaßen lösen:
Private Sub Workbook\_Open()
Dim Zellen As Object
For Each Zellen In ActiveSheet.Range("a1:a1000")
If Zellen = Date Then Exit For
Next
If Zellen.Row
Das Progrämmchen sucht in der Spalte A bis zur Zeile 1000 nach dem aktuellen Datun, und markiert dann die ganze Zeile gelb. Wenn du den Code - wie hier geschehen - in das Workbook\_Open-Sub reinpackst, wird es automatisch bei jedem Öffnen der Datei ausgeführt.
Es sollte aber auch eine entsprechende Routine irgendwo vorhanden sein, welche die gelbe Markierung vor dem Schließen wieder löscht, sonst ist irgendwann alles gelb...
Viele Grüße,
Bellhouse
Nehmen wir an: das zu prüfende Datum steht in Spalte B, beginnend ab Zeile 4 und Sie haben C4 markiert, dann folgende Formel eingeben:
„=$B4=$A$1“ (alternativ ohne aktuellem Datum in A1 geht auch das: „=$B4=heute()“
Das mit den 2 Gleichheitszeichen ist wirklich so, kein Fehler
Das Dollarzeichen vor B hält den Bezug zur Spalte B fest, wenn Sie dann die ganze Spalte so formatieren. Wichtig: Vor der Zeilennummer 4 darf kein Dollarzeichen sein
Bei „Formatieren…“ gehen Sie auf „Ausfüllen“ und wählen die Farbe
Jetzt die Spalte nach unten ziehen (oder nur die Formatierung mit dem gelben Pinsel nach unten ziehen)
Das geht natürlich auch mit der Zelle, in der das Datum steht. Falls das datum dann als Zahle angezeigt wird, dann die Zelle wieder als datum formatieren.
Falls Sie doch eine VBA Lösung wollen:
(zu prüfendes datum wird hier ab Zeile 4 in Spalte 2 erwartet):
sub Markierungstest
iZeile = 4
iSpalte = 2
Do While ActiveSheet.Cells(iZeile, iSpalte) „“
If ActiveSheet.Cells(iZeile, iSpalte) = Date Then
ActiveSheet.Rows(iZeile).Interior.ColorIndex = 6
End If
iZeile = iZeile + 1
Loop
end sub
nachfolgend ein Makro zur Formatierung der Zeilen mit aktuellem Datum.
Alternativ könntets du das Formatieren auch per bedingter Formatierung realisieren.
– Markiere die Spalten, in denen die Zeilen gekennzeichent werden sollen.
– Dann bedingte Formatierung einrichten.
---- Formeln zur Ermittlung der zu formatierenden Zellen verwenden
---- Formel, wenn Datum in Spalte A steht: =$A1=HEUTE()
---- Formatierung einstellen
---- Fertig mit OK
Gruß
Franz
Sub Heute\_markieren()
Dim wks As Worksheet, Zeile As Long, lngColor As Long
Dim ZeileLetzte As Long, Spalteletzte As Long, SpalteDatum As Long
SpalteDatum = 1 'Spalte A - Nummer der Spalte mit dem Datum - ggf. anpassen
lngColor = VBA.RGB(0, 255, 255) 'hellblau - ggf. anpassen
' lngColor = VBA.RGB(255, 255, 0) 'gelb - ggf. anpassen
Set wks = ActiveSheet
Application.ScreenUpdating = False
With wks
'letzte Zeile und Spalte ermitteln
ZeileLetzte = .Cells.SpecialCells(xlCellTypeLastCell).Row
Spalteletzte = .Cells.SpecialCells(xlCellTypeLastCell).Column
'Zellfarbe im Datenbereich zurücksetzen - ggf. Zeile für 1. Zelle anpassen
.Range(.Cells(1, 1), .Cells(ZeileLetzte, Spalteletzte)).Interior.ColorIndex = xlColorIndexNone
'Wert in Datumsspalte prüfen und ggf. Zeile einfärben
For Zeile = 1 To ZeileLetzte ' ggf, Startzeile anpassen
If IsDate(.Cells(Zeile, SpalteDatum)) Then
If .Cells(Zeile, SpalteDatum).Value = Date Then
.Range(.Cells(Zeile, 1), .Cells(Zeile, Spalteletzte)).Interior.Color = lngColor
End If
End If
Next
End With
Application.ScreenUpdating = True
End Sub
Schreibe erst einaml in die Zelle-A1 folgendes:
=heute()
Danach schreibst du in Zelle-A2 das heutige Datum und bleibst auf dieser Zelle!
Jetzt weiß ich nicht, welche Excel-Version du hast, aber die Abfrage ist ähnlich. Also beschreibe ich dir, wie es weiter geht mit der Excel 2007/2010er Version.
Register „Bedingte Formatierung“ - „Regeln verwalten“ anklicken.
Danach fügst due eine neue Regel mit „Neue Regel“ dazu.
Dann klickst du an „Nur Zellen formatieren, die enthalten“.
Dann schaust du in der Mitte des offenen Fensters auf:
„Nur Zellen formatieren mit:“ und der Auswahl:
„Zellwert“ - „gleich“ - „$A$1“.
Dann auf:
„Formatieren“ - „Ausfüllen“ und eine Farbe auswählen.
Mit 3 x OK bestätigen und das Fenster ist geschlossen.
Das Ergebnis siehst du sofort.
Du kannst natürlich auch einen Bereich angeben:
„$A$1:blush:A$10“.
Dann kannst du in diesem Bereich das heutige Datum eingeben und die Zelle wird automatisch gefärbt.
Wichtig ist, dass das Makro in Zelle-A1 nicht überschrieben, oder gelöscht wird.
Stört es in Zelle-A1, dann schreibe deie Formel einfach in $A$20 etc und passe die „Bedingte Formatierung“ dementsprechend an.