Excel 2016 VBA Grundkurs

Datumsbereich markieren

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Wenn ein Datumsbereich markiert werden soll, ist es wichtig, dass Sie die "Richtung" einer For-Each-Schleife vorgeben können. Mit einer zweiten Schleife sorgen Sie dafür, dass die Datumswerte spaltenweise bearbeitet werden.

Transkript

Ich möchte in meinem Kalender nicht nur einzelne Tage markieren können, sondern auch ganze Bereiche, z.B. Schulferien. Hier möchte ich Ihnen das zeigen mit Ostern, von Karfreitag inklusive bis Ostermontag. Also erfinde ich eine neue Prozedur "sub MarkiereOstern". Und sehr vieles davon wird der ursprünglichen Schleife hier gleichen, so dass ich mir das erst mal rüberkopiere, mit Strg+C und hier mit Strg+V erstmal einfüge. Dann kann ich diesen ganzen Block hier markieren und die Kommentierung hier wieder entfernen. Der wesentliche Unterschied liegt hier, ich will nicht das exakt das übergebene Datum prüfen, sondern ein vorgegebenes und zwar grösser kleiener. Das Datum was ich hier habe, muss größer gleich dem Karfreitag sein, und gleichzeitig "and" muss dieses "cdate(rngTag.value)", muss sein kleiner gleich dem Ostermontag. Es ist also ein ganzer Bereich und der soll dann eben auch nicht grün werden, sondern ich mache ihn mal rot. Und hier gibt es ein anderes Muster, sagen wir "Gray50". Und vor allem darf ich nicht mittendrin rausspringen. Sonst würde nämlich nach dem ersten Treffer, das ist Karfreitag, schon direkt die Schleife enden. Genau das will ich nicht! Probieren wir erst mal, ob es soweit klappt. Also, nach dem Speichern "Debuggen, Kompilieren" alles in Ordnung. Mal eben gucken, dass nichts markiert ist. Alles frei und jetzt mit F5 ausgeführt und Sie sehen, Ostern, vor allem an diesem Muster, ist erkannt. Sie können natürlich, nachdem Sie den Ostermontag erwischt haben, sicher voraussagen, dass kein zweites Ostern, im gleichen Jahr kommt. D.h. Sie können in der Schleife nochmal extra prüfen, ob vielleicht alleine diese Bedingung schon überschritten ist. Also danach, ich mache das mal mit ein bisschen Abstand, nochmal extra prüfen, ob das Datum vielleicht jetzt größer, genau genommen sogar größer gleich diesem Wert ist, dann haben Sie nämlich grade Ostermontag erledigt, "End If" und da käme jetzt hier das "Exit for", so dass Sie an der Stelle abbrechen können. Das geht nicht hier drin, weil da zwei Bereiche überprüft werden, aber hier kann ich hinterher nochmal prüfen, ob der Rest nicht vielleicht schon überflüssig ist. Dann wird die Schleife wenigstens, je nachdem wann Ostern ist, irgendwann Ende April, aber jedenfalls weit im ersten Drittel des Jahres, schon abgebrochen. Das spart hier Bruchteile von Millisekunden, aber ich möchte Ihnen bei der Gelegenheit immer auch zeigen, wie Sie Ihren Code verbessern können. Das ist das, was ich Ihnen hoffentlich in dem gesamten Projekt auch zeigen konnte, wie leicht eigentlich VBA für Excel zu benutzen ist. Wie gut das organisiert ist und wie viel Spass es macht, damit Projekte zu machen. Und das wünsche ich Ihnen jetzt für Ihre Projekte: Viel Spass und viel Erfolg!

Excel 2016 VBA Grundkurs

Lassen Sie sich systematisch in die Excel-Programmierung mit Visual Basic for Applications (VBA) einführen.

7 Std. 25 min (66 Videos)
Derzeit sind keine Feedbacks vorhanden...
Hersteller:
Exklusiv für Abo-Kunden
Erscheinungsdatum:30.08.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!