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.
 

Kontakt:

letzte Aktualisierung am 06.01.2008

© 2004 - Copyright Oliver Scheckelhoff,
All Rights Reserved