22.10.2018, 13:34 (Dieser Beitrag wurde zuletzt bearbeitet: 22.10.2018, 13: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.