|
81. Samstage, Sonntage und
Feiertage farblich markieren
Aufgabenstellung:
Für diese Beispieldatei war die Aufgabenstellung das farbliche Markieren von Sams- und Sonntagen.
Dieses Beispiel steht auch als
Beispieldatei
zum Download zur Verfügung.
|
|
Realisiert wurde das durch eine Formellösung.
Beispiel 1: Hier wurde das farbliche Hervorheben der Wochentage "Samstag", "Sonntag",
sowie der Feiertage über eine
bedingte Formatierung
realisiert. Nach Eingabe einer Jahreszahl in Zeile 1, werden die Hintergründe bei Samstagen und Sonntage entsprechender Farbvorgabe geändert. Zum Einsatz kamen die Arbeitsblattfunktionen
für die Farbänderung bei Sonntag
|
=WOCHENTAG(Zellenbezeichnung, z.B. A4)=1
|
(hier die Zahl 1, da es sich bei Sonntag um den 1. Wochentag handelt)
und für die Farbänderung bei Samstag
|
=WOCHENTAG(Zellenbezeichnung, z.B. A4)=7
|
(hier die Zahl 7, da es sich bei Samstag um den 7. Wochentag handelt)
Für die Feiertage wurde ein Tabellenblatt angelegt, indem alle Feier- und Sondertage, wie z.B. Rosenmontag oder die Adventssonntage, aufgeführt sind. Für die Spalte mit den Datumswerten der aufgeführten Feiertage wurde ein Name (definierter Name: Feiertage) definiert und im Blatt mit dem Kalender wurde eine weitere bedingte Formatierung hinzugefügt, in der die Formel
|
=ODER(Feiertage= z.B. A4)
|
eingetragen wurde.
Beispiel 2: Hier wurde das farbliche Hervorheben der Wochentage "Samstag" und "Sonntag",
mit einem VBA-Code realisiert. Nach Eingabe der Jahreszahl in der 1. Zeile wird über eine For/ Each-Schleife
abgefragt, ob es sich bei der angesprochenen Zelle um einen Datumswert handelt. Wenn ja, wird anhand einer
Select Case-Anweisung ausgewertet, ob es sich bei dem Datumswert der Zelle um eine 1, für den 1. Wochentag und
somit den Sonntag, oder um den 7. Wochentag, also dem Samstag, handelt. Stimmt einer der genanten Bedingungen,
werden die Hintergründe entsprechender Vorgabe durch die Farbindexzahl (Interior.Colorindex = Farbindexzahl) geändert
Der Code ist in das
VBA-Projekt der Tabelle, in dem er wirken soll, einzufügen
|
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range, rCells As Range
'Bildschirmaktualisierung ausschalten
Application.ScreenUpdating = False
'Wenn mehr als eine Zelle markiert wurde, Prozedur beenden
If Target.Count > 1 Then Exit Sub
'Wenn Änderung in Zelle A1 eintritt, dann...
If Target.Address = "$A$1" Then
'Hintergründe aller Zellen in Weiß ändern
Cells.Interior.ColorIndex = 2
'Bereich (hier A4 bis AI4) für nachfolgende For/Each Schleife in Variable "Bereich" festlegen
Set Bereich = Range("A4:AI34")
'For/Each-Schleife zum Prüfen des Bereichs
For Each rCells In Bereich
'Wenn die Function "IsDate" bei der durch die Schleife angesprochene Zelle
'den Boolean-Wert True zurückgibt, dann...
If IsDate(rCells) = True Then
'...Select Case-Anweisung für die Funktion "Weekday" (Wochentag) bei der durch
'die Schleife angesprochenen Zelle ausführen
Select Case Weekday(rCells)
'1. Ausdruck: Wenn der Ausdruck die Zeichenfolge 1 (die 1 steht für den
'1. Wochentag und das ist der Sonntag) hat, dann die Hintergrundfarbe in der Zelle
', die durch die Schleife angesprochen wird, in "rot" ändern
Case 1
rCells.Interior.ColorIndex = 3
'1. Ausdruck: Wenn der Ausdruck die Zeichenfolge 7 (die 7 steht für den
'7. Wochentag und das ist der Samstag) hat, dann die Hintergrundfarbe in der Zelle
', die durch die Schleife angesprochen wird, in "hellrot" ändern
Case 7
rCells.Interior.ColorIndex = 22
'Ende Select-Anweisung
End Select
'Ende Abfrage
End If
'Nächsten Schleifendurchlauf starten
Next
'Ende Abfrage
End If
End Sub
|
Dieses Beispiel wurde unter den in der
Tabelle aufgeführten Versionen getestet.
|
|
A |
B |
C |
D |
E |
|
1 |
|
|
|
|
|
2 |
|
Excel - Version |
Getestet |
|
|
3 |
|
|
|
|
4 |
|
Excel 2007 |
12.0 |
a |
|
|
5 |
|
Excel 2003 |
11.0 |
a |
|
|
6 |
|
Excel 2002 |
10.0 |
a |
|
|
7 |
|
Excel 2000 |
9.0 |
a |
|
|
8 |
|
Excel 97 |
8.0 |
|
|
|
9 |
|
|
|
|
|
|
10 |
|
Anzahl der Downloads: |
|
|
|
11 |
|
|
|
|
|
|
12 |
|
Dieses Beispiel wurde bereits
x
aufgerufen. |
|
|
13 |
|
|
|
14 |
|
|
|
|
|
|
>
Beispieldatei
herunterladen
<
Sollten beim Ausführen der Beispieldatei Fehler
auftreten, bitte ich darum, mir eine Mail mit der
Fehlerbeschreibung an
fehler@excelbeispiele.de
zu schicken.
Danke!
Möchten Sie www.excelbeispiele.de in Ihre Favoriten aufnehmen? Dann Klicken Sie hier.
|
|