Excel 97 Sonntage im Kalender markieren

Kann mir jemand bei meinem Makro helfen?
Dies soll mir alle Sonntage in meinem Excelkalender (Bereich A2:L33) makieren, macht es aber nicht? Im Gegenteil, wenn ich per Hand die So-Tage markiert habe ist nach ausführen des Makros alles weiß!

'Makrolisting zum Markieren der Sonntage:

Sub Sonntage()
ActiveSheet.Unprotect
With ActiveSheet.Range(„A1:L33“)
.Interior.ColorIndex = xlNone
Set Sotag = .Find(" So", LookIn:=xlValues)
If Not Sotag Is Nothing Then
ersteAdresse = Sotag.Adress
Do
With Sotag.Interior
.ColorIndex = 0
.Pattern = xlGray25
.PatternColorIndex = 3
End With
Set Sotag = .FindNext(Sotag)
Loop While Not Sontag Is Nothing And Sotag.Adress ersteAdresse
End If
End With
'ActiveSheet.Protect
End Sub

PS: Der Kalender erstellt sich automatisch nach Eingabe der Jahreszahl in der
Zelle A1
Zelle A2 = Jan
Zelle A3:L33 = =DATUM($A$1;1;1) etc etc etc

mfg Werner

Hallo

Wenn ich das recht verstehe wird Dein Kalender erzeugt, indem automatisch mit der Funktion Datum die Monatsdaten erzeugt werden.

Wenn dem so ist, dann liegt der Fehler in der Zeile
Set Sotag = .Find(" So", LookIn:=xlValues)

Diese sucht nämlich nach dem String „So“, den es nicht gibt, da in den Zellen Zahlen abgelegt sind, die ein Datum repräsentieren.

Du könntest hier besser ans Ziel gelangen, indem Du alle Zellen durchgehst und mit der Funktion Wochentag (das VBA Äquivalent wäre noch zu finden) nach dem Sonntag suchst und da Deine Graumarkierungen setzt.

Deine manuell gesetzten Graumarkierungen sind übrigens weg, da Du am Anfang des Makros diese Formatierung für den gesamten Bereich zurücksetzt.

Viel Spaß
Thomas

Hallo Werner,

vielleicht hilft dir das weiter?

Viele Grüße
Bettina

Sub Sonntag()
ActiveSheet.Range(„A1“).Select
ActiveCell.CurrentRegion.Select
Set tabelle = ActiveCell.CurrentRegion
Reihen = tabelle.Rows.Count
Spalten = tabelle.Columns.Count
ActiveSheet.Range(„A1“).Select
For i = 0 To Reihen - 1
For j = 0 To Spalten - 1
If WeekDay(ActiveCell.Offset(i, j).Range(„A1“)) = 1 Then
MsgBox "Ich bin ein Sonntag " & ActiveCell.Offset(i, j).Range(„A1“).Value
End If
Next j
Next i
End Sub