22.10.2018, 12:34 (Dieser Beitrag wurde zuletzt bearbeitet: 22.10.2018, 12:34 von Kuwer.)
Hallo Tyler,
lösche die Bedingten Formatierungen und nimm folgende Codes:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngJahr As Range, rngTag As Range, rngWE As Range, rngWU As Range
If Target.Address = "$A$1" Then
Set rngJahr = Range("$B$2:$FK$14")
For Each rngTag In rngJahr.Columns
If Application.Weekday(rngTag.Cells(1, 1).Value, 2) > 5 Then
If Not rngWE Is Nothing Then
Set rngWE = Application.Union(rngWE, rngTag)
Else
Set rngWE = rngTag
End If
Else
If Not rngWU Is Nothing Then
Set rngWU = Application.Union(rngWU, rngTag)
Else
Set rngWU = rngTag
End If
End If
Next rngTag
End If
If Not rngWE Is Nothing Then rngWE.Interior.Color = 15773696
If Not rngWU Is Nothing Then rngWU.Interior.Color = 15921906
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim oComment As Comment
Dim rngSpalte As Range
Application.ScreenUpdating = False
Range("Color").Interior.ColorIndex = xlNone
For Each rngSpalte In Range("Color").Resize(Range("Color").Rows.Count - 2).Columns
rngSpalte.Interior.Color = rngSpalte.Offset(-2).Cells(1).Interior.Color
Next rngSpalte
For Each oComment In Me.Comments
oComment.Parent.Cells.Interior.ColorIndex = 38
Next oComment
Application.ScreenUpdating = True
End Sub
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität. Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.