Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Alle Zellen mit bestimmtem Datum markieren

Alle Zellen mit bestimmtem Datum markieren
02.10.2019 14:41:26
Tobias
Version: Excel 2016
Hallo,
ich suche innerhalb eines Makros eine Möglichkeit zur automatisierten Umsetzung der folgenden, immer wiederkehrenden Anwendung:
- manuelle Eingabe eines (variablen) Stichtages (Datum) in einer dafür vorgesehenen Zelle (A1) auf Tabellenblatt "Blatt 1"
- auf einem anderen Tabellenblatt "Blatt 2" befindet sich bereits eine Tabelle mit 8 Spalten, eine davon (F) ist eine Datumsspalte
- die Datumsspalte ist bereits anhand der Filter/Kopfzeile absteigend nach Datum sortiert
- es sollen innerhalb der Spalte F alle Zellen mit dem Datum aus Blatt 1, Zelle A1 gefunden und markiert werden
Das ist meine gesuchte "Grundfunktion", die gesamte "Kür" ginge noch weiter:
- es sollen zusätzlich auch alle Zellen mit jüngerem Datum (also alle – abgesehen von der Titelzeile – oberhalb der Auswahl mit dem Stichtag befindlichen Zellen) markiert werden
- diese Markierung soll auf alle Zellen links davon (also bis Spalte A) erweitert werden
- Ändern der Schriftfarbe auf Rot der markierten Zellen
→ im Ergebnis ist dann in allen Zeilen, bei denen in der Spalte F das eingegebene Datum oder ein späteres Datum steht, die Schriftfarbe in den Zellen A bis F rot eingefärbt
Hoffnungsfroh,
Tobias
Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alle Zellen mit bestimmtem Datum markieren
02.10.2019 14:43:46
Daniel
hi
warum nutzt du dafür nicht einfach die Bedingte Formatierung?
die ist genau für sowas da.
Gruß Daniel
AW: Alle Zellen mit bestimmtem Datum markieren
02.10.2019 14:56:45
Tobias
Hallo,
es handelt sich um eine Exceldatei, in die "jeder" eine unformatierte Tabelle aus einer anderen Anwendung (also als Excel-Export) hineinkopiert (im Beispiel ins Blatt 2). Mithilfe des Makros wird diese Tabelle dann nach den immer gleichen Kriterien aufbereitet, die Farbgebung und Datumssortierung ist nur ein Teil davon. Aktuell funktioniert es mit zwei Makros, der manuelle Zwischenschritt ist die Einfärbung. Es wäre schön, wenn diese ebenfalls und dann in nur einem Makro unterzubringen wäre ...
Alternativ könnte die bedingte Formatierung vermutlich tatsächlich in der Spalte F auf auf die Tabelle aus der Zwischenablage "warten" und dann gar nicht mehr Bestandteil des Makros bzw. der weiteren Aufbereitung sein. Allerdings ist mir auch da der Formatierungsbefehl nicht klar mit dem Bezug aus dem Wert aus einer Zelle auf einem anderen Blatt ...
Danke,
Tobias
Anzeige
AW: Alle Zellen mit bestimmtem Datum markieren
02.10.2019 15:12:07
Daniel
Hi
hängt von der Excelversion ab.
ab Excel 2010 kann man in der Bedingten Formatierung auch Zellbezüge auf andere Tabellenblätter direkt angeben.
in älteren Versionen muss man dann diese Zelle als Namen erstellen und diesen Namen in der Regelformel der bedingten Formatierung verwenden.
du siehst, deine Entscheidung bei der Version "ohne Relevanz" anzugeben war nicht besonders clever.
du solltest wissen, auf welcher Excelversions das ganze laufen muss (bei mehreren immer die älteste angeben)
Gruß Daniel
Anzeige
AW: Alle Zellen mit bestimmtem Datum markieren
02.10.2019 15:28:09
Tobias
... meine Entscheidung, bei der Version "ohne Relevanz" anzugeben beruht auf dem Fehlen der von mir verwendeten Version (Excel 2016) in der Auswahlliste. Mir schien es daher sinnvoller in meinem Post die Version in die erste Zeile über mein Anliegen zu schreiben, bevor ich eine ältere Version auswähle ...
Anzeige
AW: Alle Zellen mit bestimmtem Datum markieren
02.10.2019 15:08:54
Daniel
Hi
als Makro so:
dim Z as Long
z = Application.Match(Sheets("Blatt 1").Range("A1").Value - .5, Sheets("Blatt 2").Range("F:F"),  _
-1)
Sheets("Blatt 2").Range("A2:F" & Z).Font.Color = vbRed
das Makro muss nach der Eingabe des Datums in A1 ausgeführt werden.
Gruß Daniel
Anzeige
AW: Alle Zellen mit bestimmtem Datum markieren
02.10.2019 15:24:45
Tobias
Hallo,
erstmal Danke! Ich habe nun eine Testdatei nur für diesen Befehl angelegt, um Fehlerquellen durch das bestehende Makrop auszuschließen. Da ich die Logik des Befehls nicht verstehe, kann ich nur die Auswirkung beschreiben: Egal, wie die Tabelle sortiert ist und anscheined auch völlig unabhängig von der Eingabe in Zelle A1 auf Blatt 1 → es wird durch das Makro lediglich die Schrift in den ersten 6 Zellen der Überschrifts-Titelzeile sowie in den ersten 6 Zellen der ersten inhaltlichen Zeile (also Zeile 2) rot gefärbt ...
Grüße,
Tobias
Anzeige
AW: Alle Zellen mit bestimmtem Datum markieren
02.10.2019 15:36:14
Daniel
hi
solange du mir nicht zeigst, was du machst und wie deine Datei aussieht, kann ich dir auch nicht sagen was du falsch machst.
die Logik ist eigentlich recht einfach und verwendet die Excelfunktion VERGLEICH zur Ermittlung der Zeilennummer in absteigend sortieren Listen.
Gruß Daniel
Anzeige
AW: Alle Zellen mit bestimmtem Datum markieren
02.10.2019 16:03:37
Tobias
hier habe ich eine Beispieldatei erstellt. Das dritte Tabellenblatt ist das gewünschte, simulierte Ergebnis, wie das zweite Blatt durch das Makro und die Datums-Eingabe in Zelle A1 auf dem ersten Blatt bearbeitet werden soll. Ich hoffe, auch wenn es keine Lösung geben sollte, dass zumindest das Problem nun gut nachvollzogen werden kann!
Grüße,
Tobias
https://www.herber.de/bbs/user/132333.xlsm
Anzeige
AW: Alle Zellen mit bestimmtem Datum markieren
02.10.2019 16:28:43
Tobias
hm, ich sehe gerade, dass ich vergessen habe, das Kontrollkästchen für die weiter offenen Fragen zu aktivieren ...
AW: Alle Zellen mit bestimmtem Datum markieren
02.10.2019 16:40:42
Daniel
Hi
ok, da stört jetzt die Implizite Typumwandlung von VBA mit Datumswerten.
setze mal in der Match-Funktion ein CLNG() um den Zellbezug auf die Eingabezelle:
z = Application.Match(CLng(Sheets(...).Range("A1").Value) - .5, Sheets(...).Range("F:F), -1)
Gruß Daniel
Anzeige
AW: Alle Zellen mit bestimmtem Datum markieren
02.10.2019 17:00:04
Tobias
Ich habe mal das ganze Makro auf die Testdatei bezogen, hier muss aber irgendwo noch eine Klammer fehlen (s. meine leider zutreffende Angabe „VBA bescheiden“): es kommt im Editor die Fehlermeldung „Fehler beim Kompilieren: Erwartet: Listentrennzeichen oder )“
Sub Test()
Dim Z As Long
z = Application.Match(CLng(Sheets("Datum eintragen in Zelle A1").Range("A1").Value) - .5,  _
Sheets("Tabelle vor Makro").Range("F:F), -1)
Sheets("Tabelle vor Makro").Range("A2:F" & Z).Font.Color = vbRed
End Sub

Anzeige
AW: Alle Zellen mit bestimmtem Datum markieren
02.10.2019 17:12:45
Tobias
... es fehlte ein Anführungszeichen (und ich habe es selbst entdeckt!). Ich verstehe zwar nicht warum, aber es funktioniert fantastisch! 1000 Dank! Tobiuas
Sub Test()
Dim Z As Long
Z = Application.Match(CLng(Sheets("Datum eintragen in Zelle A1").Range("A1").Value) - 0.5,  _
Sheets("Tabelle vor Makro").Range("F:F"), -1)
Sheets("Tabelle vor Makro").Range("A2:F" & Z).Font.Color = vbRed
End Sub

Anzeige
AW: Alle Zellen mit bestimmtem Datum markieren
02.10.2019 17:26:31
Daniel
HI
naja, was ist daran schwer zu verstehen?
bei Excel-Gut solltest du die Funktion VERGLEICH kennen, diese liefert dir die Zielennummer, in welcher sich ein bestimmter Wert befindet.
damit suche ich nach der letzten Zeilennummer mit dem gesuchten Datum und färbe ab da alle Zellen.
eigentlich sehr simpel, wenn man die Funktion VERGLEICH mit ihren Varianten kennt.
einziges Problem ist hier in VBA, dass eben nicht der Zellwert so wie er unformatiert in der Zelle steht übernommen wird (also der Zahlenwert des Datums), sondern das Datum in Textform "1.5.2009" und dann nach diesem Text im Zellbereich gesucht wird.
Daher die explizite Umwandlung in den Zahlenwert mit CLNG
Gurß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Alle Zellen mit bestimmtem Datum markieren


Schritt-für-Schritt-Anleitung

Um alle Zellen mit einem bestimmten Datum in Excel zu markieren, kannst Du ein Makro verwenden. Diese Anleitung basiert auf Excel 2016 und zeigt Dir, wie Du dies umsetzen kannst:

  1. Öffne die Visual Basic for Applications (VBA) Umgebung:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke im Menü "Einfügen" auf "Modul".
  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub MarkiereZellenMitDatum()
       Dim Z As Long
       Z = Application.Match(CLng(Sheets("Blatt 1").Range("A1").Value) - 0.5, _
       Sheets("Blatt 2").Range("F:F"), -1)
       Sheets("Blatt 2").Range("A2:F" & Z).Font.Color = vbRed
    End Sub
  4. Setze das Datum in Zelle A1 von "Blatt 1".

  5. Führe das Makro aus:

    • Gehe zurück zu Excel und drücke ALT + F8, wähle "MarkiereZellenMitDatum" und klicke auf "Ausführen".
  6. Ergebnis prüfen:

    • Alle Zellen in den Spalten A bis F, die das Datum oder ein späteres Datum in Spalte F enthalten, sind nun rot gefärbt.

Häufige Fehler und Lösungen

  • Problem: Das Makro markiert nur die Überschrift und die erste Zeile.

    • Lösung: Stelle sicher, dass das Datum in Zelle A1 korrekt eingegeben ist und dass die Daten in Spalte F richtig sortiert sind.
  • Problem: Fehlermeldung beim Kompilieren.

    • Lösung: Überprüfe, ob alle Klammern und Anführungszeichen korrekt gesetzt sind.
  • Problem: Der Zellbezug funktioniert nicht.

    • Lösung: Achte darauf, dass Du die richtige Excel-Version verwendest, da in Versionen vor Excel 2010 Zellbezüge auf andere Blätter nicht direkt verwendet werden können.

Alternative Methoden

Eine weitere Möglichkeit, alle Zellen mit einem bestimmten Datum zu markieren, ist die Verwendung der bedingten Formatierung:

  1. Wähle die Zellen in Spalte F aus.
  2. Gehe zu Start > Bedingte Formatierung > Neue Regel.
  3. Wähle Formel zur Ermittlung der zu formatierenden Zellen verwenden.
  4. Gib die Formel ein:
    =F1=Blatt1!$A$1
  5. Lege das Format fest (z.B. rote Schriftfarbe) und klicke auf OK.

Diese Methode eignet sich besonders gut, wenn Du die Formatierung dynamisch halten möchtest, während sich die Daten ändern.


Praktische Beispiele

Hier sind einige praktische Anwendungen:

  • Jubiläumsfeiern hervorheben: Wenn Du beispielsweise alle Jubiläen in einer Liste hervorheben möchtest, kannst Du das Datum des Jubiläums in Zelle A1 setzen und das oben beschriebene Makro verwenden.

  • Monatliche Berichte: Setze das Datum auf den letzten Tag des Monats und markiere alle relevanten Zellen.


Tipps für Profis

  1. Automatisierung: Du kannst das Makro so anpassen, dass es automatisch bei jeder Änderung in Zelle A1 ausgeführt wird. Dazu musst Du den Worksheet_Change-Ereignis-Handler verwenden.

  2. Verwendung von Excel alles auswählen**: Um schnell alle relevanten Zellen in einer Tabelle auszuwählen, nutze Strg + A, bevor Du das Makro ausführst.

  3. Debugging: Verwende Debug.Print, um den Wert von Variablen während der Ausführung zu überprüfen, falls das Makro nicht wie erwartet funktioniert.


FAQ: Häufige Fragen

1. Frage
Kann ich auch mehrere Daten gleichzeitig markieren?
Antwort: Ja, Du müsstest das Makro anpassen, um eine Schleife zu implementieren, die alle gewünschten Daten durchläuft.

2. Frage
Funktioniert das auch in älteren Excel-Versionen?
Antwort: In älteren Versionen wie Excel 2007 musst Du möglicherweise Zellnamen für die bedingte Formatierung verwenden, um auf andere Blätter zuzugreifen.

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