Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1712to1716
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
Inhaltsverzeichnis

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

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
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
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
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
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

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

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige