Excel VBA – Wochenenden hervorheben

Dieser Beitrag ist ein Teil der VBA Grundlagen Serie.
Hallo, in diesem Artikel zeige ich Ihnen wie Sie mithilfe von einer For Next Schleife Wochenenden in einer Zelle farblich markieren können.
In der unteren Tabelle sehen Sie links das Datum und rechts den dazugehörigen Wochentag (Format TTTT).

111 VBA Makros die Ihr Leben leichter machen. Egal ob Sie Einsteiger oder fortgeschrittener Anwender sind – in diesem Buch finden Sie Lösungen für Ihre alltäglichen Aufgaben. Keine Vorkenntnisse notwendig.

Wochenenden
Wir wollen nun bei allen Zellen, die einen Samstag bzw. Sonntag enthalten, einen blauen Hintergrund hinterlegen. Dazu verwenden wir die Eigenschaft ColorIndex des Objekts Interior (Hintergrund der Zelle). Anbei ein Überblick über die verschiedenen Farben.

ColorIndex Werte

ColorIndex Werte (c) MSDN Microsoft

Zunächst definieren wir zwei Variablen für die Schleife sowie die Tabelle mit der wir arbeiten wollen.

Sub WochenendenHervorheben()
Dim Zeile As Long
Dim ZeileEnd As Long

With Tabelle1

End With
End Sub

Nun zählen wir die Anzahl von Zeilen in dem verwendeten Bereich und schreiben diese in die Variable ZeileEnd. Damit haben wir die letzte Zeile.

ZeileEnd = .UsedRange.Rows.Count

Nun lassen wir alle Zeilen, von der ersten bis zur letzten, durchgehen.

For Zeile = 1 To ZeileEnd

Next Zeile

Unternehmensplanung mit SAP BPC

111 VBA Makros die Ihr Leben leichter machen

Wollen Sie Ihre langweiligen Routineaufgaben loswerden? Möchten Sie Excel an Ihre Bedürfnisse anpassen, Berechnungen automatisieren, eigene Dialogfelder erstellen und vieles mehr? Dieses Buch zeigt Ihnen, wie Sie Ihre Aufgaben schnell und einfach mit VBA erledigen.

Innerhalb der Schleife prüfen wir ob der Inhalt der jeweiligen Zelle in der ersten Spalte, also das Datum, ein Wochenende ist. Für diese Prüfung verwenden wir die Funktion Weekday. Diese Funktion liefert uns für den Sonntag den Wert 1 und für den Samstag den Wert 7.

If Weekday(.Cells(Zeile, 1).Value) = 1 Or Weekday(.Cells(Zeile, 1).Value) = 7 Then

Else

End If

Wenn ein Wochenende ermittelt wird der Hintergrund mit der Farbe blau (ColorIndex 23) eingefärbt. Ansonsten werden evtl. vorhandenen Hintergrundfarben entfernt. Dazu verwenden wir die Konstante xlColorIndexNone.

If Weekday(.Cells(Zeile, 1).Value) = 1 Or Weekday(.Cells(Zeile, 1).Value) = 7 Then
.Cells(Zeile, 1).Interior.ColorIndex = 23
Else
.Cells(Zeile, 1).Interior.ColorIndex = xlColorIndexNone
End If

Führen Sie nun das Makro aus und betrachten Sie das Ergebnis.
Wochenenden Ergebnis

Anbei das komplette Makro:

Sub WochenendenHervorheben()
Dim Zeile As Long
Dim ZeileEnd As Long

With Tabelle1

ZeileEnd = .UsedRange.Rows.Count
For Zeile = 1 To ZeileEnd
If Weekday(.Cells(Zeile, 1).Value) = 1 Or Weekday(.Cells(Zeile, 1).Value) = 7 Then
.Cells(Zeile, 1).Interior.ColorIndex = 23
Else
.Cells(Zeile, 1).Interior.ColorIndex = xlColorIndexNone
End If
Next Zeile

End With
End Sub

Die Beispiel Excel Datei mit dem sofort einsetzbaren Makro und 111+ andere Makros, die Ihr Leben leichter machen, finden Sie hier.

Beeindrucke deinen Chef mit coolen Excel Tricks!

  • Lasse dich von deinen Kollegen nicht abhängen!
  • Spare Zeit und nutze diese für angenehmere Dinge
  • Steigere deine Produktivität und Effizienz
  • Es ist leicht - In meinem Newsletter gebe ich Schritt für Schritt Anleitungen die jeder versteht
  • Bei der Anmeldung zu meinem Newsletter erhälst du das Buch „Excel Tricks die deinen Chef beeindrucken“ als Willkommensgeschenk.
20 Excel Tricks

Jetzt anfordern!

* Pflichtfeld
 
Kein SPAM. 100% sicher.

Quellen:
Adding Color to Excel Worksheets by Using the ColorIndex Property
Bernd Held – VBA mit Excel: Das umfassende Handbuch
Falls Ihnen dieser Beitrag weitergeholfen hat, wäre es eine sehr nette Anerkennung meiner Arbeit wenn Sie z.B. Ihre Bücher über Amazon bestellen würden. Wenn Sie ein Produkt kaufen, erhalte ich dafür eine Provision. Für Sie ändert sich am Preis des Produktes gar nichts. Ich möchte mich an dieser Stelle jetzt schon für Ihre Unterstützung bedanken.

Bildnachweis:
MSDN Microsoft

0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.