Excel: Zeile von Datum-X durch Makro formatieren

Hallo zusammen,

habe folgendes Problem:

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.

Excel Version: 2007

Danke im Voraus

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!

Gruß
Ramaka

schlage bedingte formatierung vor:

‚zellwert ist‘ ‚gleich‘ ‚=HEUTE()‘

viel erfolg

Hallo DAO,

dein Ansatz war schon richtig. Du solltest nur stat Filtern die Dadums-Spalte durchsuchen.

MfG,
W.W.

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

Grüezi DAO

Ich möchte mit einem Makro immer Die Zeile farbformatieren, in
der das aktuelle Datum angegeben ist.

Wie meine ‚Mitschreiber‘ auch würde ich das über die Bedingte Formatierung lösen, statt ein VBA-Makro zu verwenden.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo,

ich würde das Makro aufzeichnen und im VBA Editor bearbeiten,

Gruß

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

Hallo

Letzte Zeile finden
Aktuelles Datum finden
Das ganze in einer Schleife mit If bedinnung einbauen das wars!!

LG Fred

Hallo!

Sorry, kann dir im Moment nicht weiterhelfen.
Solltest du keine Hilfe finden, stelle deine Frage hier:

http://clever-forum.de/list.php?11

Gruß
Ralf

==========================

Hi,

muss es mit Makro sein? Ggf. genügt hier eine bedingte Formatierung:

  1. das aktuelle Datum z.B. in Zelle A1 mit der Formel „=heute()“ schreiben
  2. Eine Zelle rechts oder links neben der Spalte mit den Datumswerten markieren (muss nicht leer sein)
  3. „Bedingte Formatierung“, „Neue Regel“, „Formel (…) verwenden“
  4. 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:
  5. „=$B4=$A$1“ (alternativ ohne aktuellem Datum in A1 geht auch das: „=$B4=heute()“
  6. Das mit den 2 Gleichheitszeichen ist wirklich so, kein Fehler
  7. 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
  8. Bei „Formatieren…“ gehen Sie auf „Ausfüllen“ und wählen die Farbe
  9. 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

Grüße

Bawamba

Hallo Dao,

dafür reichen meine VBA-Kenntnisse leider noch nicht aus.

Gruß Hugo

Hallo DAO,

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

Hallo DAO,

folgendes Makro im VBA-Editor unter dem Blatt (z.B. Tabelle1) einfügen, in dem das Programm wirken soll.
Feedback wäre schön…

Gruß,
Jochen

Hier das Makro:
Private Sub Worksheet_Change(ByVal target As Range)
Wert = target.Value
Application.ScreenUpdating = False
AktDat = Date
On Error GoTo ende
Cells.Find(What:=AktDat, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Zeile = ActiveCell.Row
Rows(Zeile).Select
With Selection.Interior
.ColorIndex = 40
.Pattern = xlSolid
End With
target.Select
GoTo schluss
ende:
Cells.Select
Selection.Interior.ColorIndex = xlNone
target.Select
schluss:
Application.ScreenUpdating = True
End Sub

Hallo DAO,

habe eine, von vielen Möglichkeiten parat.

Vielleicht ist es genau das, was du suchst!

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.

Ich hoffe, dass ich die helfen konnte.

mfg
Softoldi