Moin!
Zunächst mal ist der Thread ja als gelöst markiert.
Desweiteren ist der Code in der Datei unstrukturiert und nicht mal eben so zu überarbeiten.
Da das Problem auch sehr speziell ist, bringt es der Gemeinschaft des Forums sicherlich wenig, wenn hier ein Code eingestellt wird, mit dem ein Außenstehender nix anfangen kann.
Falls sich die TE jedoch noch einmal meldet, bin ich gerne bereit, Zeit zu investieren.
Ansonsten sicherlich nicht.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
02.07.2018, 09:28 (Dieser Beitrag wurde zuletzt bearbeitet: 02.07.2018, 09:28 von Rabe.)
Hi,
ich habe jetzt mal den Code aus "DieseArbeitsmappe" entfernt, sowie den in Modul1 strukturiert und verkürzt und die Variablen sprechend gemacht:
Code:
Sub test()
Application.ScreenUpdating = False
Dim loSpUe As Long 'Spalte Übersicht
Dim i As Long 'Zeile Übersicht
Dim j As Long 'Spalte
Dim loZeMatrix As Long 'Zeile Kompetenz Matrix
With Worksheets("Übersicht")
.Range("O:FT").Interior.ColorIndex = xlNone
For loSpUe = 15 To .Cells.SpecialCells(xlCellTypeLastCell).Column 'Von Spalte O bis zur letzten beschriebenen
loZeMatrix = loSpUe - 11
For i = 4 To .Cells(Rows.Count, 4).End(xlUp).Row 'Von Zeile 4 bis zur letzten befüllten
If .Cells(3, loSpUe) <> 0 Then
'Kriterium 1
If UCase(.Range("F" & i)) = "X" Then
.Cells(i, loSpUe).Interior.ColorIndex = 5
End If
For j = 6 To 14
'Kriterium 2 - 9
If UCase(.Cells(i, j + 1)) = "X" Then
If UCase(Worksheets("Matrix").Cells(loZeMatrix, j)) = "X" Then
.Cells(i, loSpUe).Interior.ColorIndex = 5
End If
End If
Next j
'rote Farbe
If .Cells(i, loSpUe).Interior.ColorIndex = 5 Then
If .Range("A1").Value - .Range("D" & i).Value > 365 Or .Cells(i, loSpUe) = "" _
Or .Cells(i, loSpUe).Value < .Range("D" & i).Value Then
.Cells(i, loSpUe).Interior.ColorIndex = 3
End If
End If
'grüne Farbe
If .Cells(i, loSpUe).Interior.ColorIndex <> xlNone And .Cells(i, loSpUe).Value - .Range("D" & i).Value > 1 And .Range("A1").Value - .Range("D" & i).Value < 365 _
Or .Cells(i, loSpUe).Interior.ColorIndex <> xlNone And .Cells(i, loSpUe).Value - .Range("D" & i).Value = 1 And .Range("A1").Value - .Range("D" & i).Value < 365 _
Then
.Cells(i, loSpUe).Interior.ColorIndex = 4
End If