WochenendeMarkieren



Excel-Version: 8.0 (Office 97)
nach unten

Betrifft: WochenendeMarkieren
von: Jens
Geschrieben am: 18.05.2002 - 20:46:24

schönen guten Abend zusammen
Wer kann mir helfe das Makro so umzubauen das ganze Spalte ab Zeile 3 mit der entsprechenden Formatierung belegt wird?

Sub WochenendeMarkieren1()
Dim C As Range
For Each C In ActiveSheet.Range("B2:AF2")
If IsEmpty(C) Then Exit Sub
If C = "So" Or WeekDay(C) = 1 Then
With C.Interior
.ColorIndex = 0
.Pattern = xlGray50
.PatternColorIndex = 3
End With
ElseIf C = "Sa" Or WeekDay(C) = 7 Then
With C.Interior
.ColorIndex = 0
.Pattern = xlGray25
.PatternColorIndex = 3
End With
End If
Next C
End Sub

Vielen Dank im voraus Jens

nach oben   nach unten

Re: WochenendeMarkieren
von: Hajo
Geschrieben am: 18.05.2002 - 20:49:45

Hallo Jens

das Wochenende kannst Du auch ohne VBA markieren

Format, Bedingte Formairierung, Formel ist
=WOCHENTAG($B12;2)>5
Format einstellen

wenn das Datum in B12 steht

Gruß Hajo


nach oben   nach unten

Re: WochenendeMarkieren
von: Rolf, Lgh.
Geschrieben am: 19.05.2002 - 10:30:28

Hallo Jens,
mein Vorschlag (Or WeekDay(C) = 1 bzw. 7 führte bei mir [Excel 2002] zu einer Fehlermeldung und habe es daher weggelassen):

Option Explicit

Sub WochenendeMarkieren1()
  Dim intCounter As Integer
  Dim As Range
  For Each C In ActiveSheet.Range("B2:AF2")
    If IsEmpty(C) Then Exit Sub
    If C.Value = "So" Then
      With C.Interior
        .ColorIndex = 0
        .Pattern = xlGray50
        .PatternColorIndex = 3
      End With
      For intCounter = 1 To 30
        With C.Offset(intCounter, 0).Interior
          .ColorIndex = 0
          .Pattern = xlGray50
          .PatternColorIndex = 3
        End With
      Next intCounter
    ElseIf C.Value = "Sa" Then
      With C.Interior
        .ColorIndex = 0
        .Pattern = xlGray25
        .PatternColorIndex = 3
      End With
      For intCounter = 1 To 30
        With C.Offset(intCounter, 0).Interior
          .ColorIndex = 0
          .Pattern = xlGray25
          .PatternColorIndex = 3
        End With
      Next intCounter
    End If
  Next C
End Sub


Gruss Rolf
nach oben   nach unten

oder (schneller)...
von: Rolf, Lgh.
Geschrieben am: 19.05.2002 - 11:20:52


Option Explicit

Sub WochenendeMarkieren1()
  Dim intCounter As Integer
  Dim As Range
  For Each C In ActiveSheet.Range("B2:AF2")
    If IsEmpty(C) Then Exit Sub
    If C.Value = "So" Then
      With C.Interior
        .ColorIndex = 0
        .Pattern = xlGray50
        .PatternColorIndex = 3
      End With
      With Range(Cells(C.Row + 1, C.Column + 0), _
                 Cells(C.Row + 30, C.Column + 0)).Interior
        .ColorIndex = 0
        .Pattern = xlGray50
        .PatternColorIndex = 3
      End With
    ElseIf C.Value = "Sa" Then
      With C.Interior
        .ColorIndex = 0
        .Pattern = xlGray25
        .PatternColorIndex = 3
      End With
      With Range(Cells(C.Row + 1, C.Column + 0), _
                 Cells(C.Row + 30, C.Column + 0)).Interior
        .ColorIndex = 0
        .Pattern = xlGray25
        .PatternColorIndex = 3
      End With
    End If
  Next C
End Sub


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Makro _ Bedingte Formatierung"