Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1244to1248
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA einfärben von Sa So falsch

VBA einfärben von Sa So falsch
Sa
Hallo zusammen,
ich versuche Sa und So per VBA in einem Kalender einzufärben.
Die Datümer dafür sind quasi zusammen gesetzt.
Einfärben funktioniert, allerdings nicht korrekt. Die Tage liegen daneben.
Kann jemand den Fehler korrigieren.
Der sog. Kalender soll aber nicht verändert werden

Die Datei https://www.herber.de/bbs/user/78281.xls wurde aus Datenschutzgründen gelöscht


Danke wiedereinmal
Karl
AW: VBA einfärben von Sa So falsch
07.01.2012 18:25:21
Sa
Hallo Karl,

If Weekday(DateSerial(Year(Cells(zz, 2)), Month(Cells(zz, 2)), zs - 2), 2) > 5 Then


AW: VBA einfärben von Sa So falsch
07.01.2012 18:28:08
Sa
Jawohl, Dankeschön Hajo
Karl
AW: VBA einfärben von Sa So falsch
07.01.2012 18:26:07
Sa
HAllo
MAch ma so:
If (Weekday(DateSerial(Year(Cells(zz, 2)), Month(Cells(zz, 2)), zs - 2), vbMonday) >= 6) Then
    Cells(zz, zs).Interior.ColorIndex = 3
Else
    Cells(zz, zs).Interior.ColorIndex = xlNone
End If

ransi
Anzeige
AW: VBA einfärben von Sa So falsch
07.01.2012 18:29:34
Sa
... und ebenfalls besten Dank an dich ransi
AW: VBA einfärben von Sa So falsch
07.01.2012 18:28:11
Sa
Hallo
Hast Du schon mal mit
Day(zs - 2))) = 6) und
Day(zs - 2))) = 7) probiert ?
Gruß Matthias
AW: VBA einfärben von Sa So falsch
07.01.2012 18:31:06
Sa
heyhey , hier wird man geholfen
Danke euch allen
Karl
PS: und wieder dazu gelernt
AW: VBA einfärben von Sa So falsch
07.01.2012 18:28:21
Sa

Hallo Karl,
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub CommandButton1_Click()
  Dim intMonth As Integer, intDay As Integer
  
  Range("C6:AG17").Interior.ColorIndex = xlNone
  
  For intMonth = 1 To 12
    For intDay = 1 To Day(DateSerial(Year(Date), intMonth + 1, 0))
      If Weekday(DateSerial(Year(Date), intMonth, intDay), vbMonday) > 5 Then
        Cells(intMonth + 5, intDay + 2).Interior.Color = vbRed
      End If
    Next
  Next
  
End Sub



« Gruß Sepp »

Anzeige
AW: VBA einfärben von Sa So falsch
07.01.2012 18:35:50
Sa
Hallo Josef, wenn ich mich nicht verguckt habe ist deine Variante etwas schneller
und ich vermute dass mit
For intDay = 1 To Day(DateSerial(Year(Date), intMonth + 1, 0))

die Anzahl der Monatstage geprüft wird
Karl
AW: VBA einfärben von Sa So falsch
08.01.2012 10:44:15
Sa

Hallo Karl,
das vermutest du richtig.
Und so geht's noch einen Tick schneller.
Private Sub CommandButton1_Click()
  Dim rng As Range
  Dim intMonth As Integer, intDay As Integer
  
  On Error GoTo ErrExit
  
  Application.ScreenUpdating = False
  
  Range("C6:AG17").Interior.ColorIndex = xlNone
  
  For intMonth = 1 To 12
    For intDay = 1 To Day(DateSerial(Year(Date), intMonth + 1, 0))
      If Weekday(DateSerial(Year(Date), intMonth, intDay), vbMonday) > 5 Then
        If rng Is Nothing Then
          Set rng = Cells(intMonth + 5, intDay + 2)
        Else
          Set rng = Union(rng, Cells(intMonth + 5, intDay + 2))
        End If
      End If
    Next
  Next
  
  If Not rng Is Nothing Then rng.Interior.Color = vbRed
  
  ErrExit:
  
  With Err
    If .Number <> 0 Then
      MsgBox "Fehler in Prozedur:" & vbTab & "Sub 'CommandButton1_Click'" & vbLf & String(40, "=") & vbLf & vbLf & _
        IIf(Erl, "Fehler in Zeile:" & vbTab & Erl & vbLf & vbLf, "") & "Fehlernummer:" & vbTab & _
        .Number & vbLf & vbLf & "Beschreibung:" & vbTab & .Description & vbLf, vbExclamation, "Fehler in Modul - Tabelle1"
      .Clear
    End If
  End With
  
  On Error GoTo 0
  
  Application.ScreenUpdating = True
  
  Set rng = Nothing
End Sub



« Gruß Sepp »

Anzeige
AW: VBA einfärben von Sa So falsch
08.01.2012 11:44:19
Sa
Hallo Josef,
die erste Prozedur hab ich eingebaut,
bei dieser jetzt kann ich bestimmt zwischendurch keinen Schluck Kaffee mehr konsumieren ;-}
Gruß
Karl
AW: VBA einfärben von Sa So falsch
07.01.2012 18:44:47
Sa
Hallo Karl,
ganz kleiner Denkfehler: Day(nn), da muss nn immer ein Datum sein. zs-2 ergibt aber einfach eine Zahl.
Ändere den Code so ab:
statt Day(zs - 2) schreib einfach zs-2.
Gruß
Jochen
AW: VBA einfärben von Sa So falsch
07.01.2012 19:16:43
Sa
Hallo Jochen,
ich """"dachte"""" bei

DateSerial
eine richtige Datumsangabe hingehört
Darum find ich dieses Forum echt Spitze, vernünftig gefragt gibt es fast immer viele brauchbare Antworten/Tipps
Karl
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige