Hi Guido,
nach deinem Code nimmst du nur jede 2. Zelle je Zeile - oder?
Option Explicit
Sub TestIt()
'Ich habe eine Tabelle mit 115 Spalten, in denen Werte (von -2 bis +2) drinstehen.
'Mein Ziel ist es nun, das Maximum für jede Zeile anzuzeigen und zwar so,
'dass der jeweilige höchste Wert (was auch mehrere Werte sein können)
'farbig hervorgehoben wird.
Dim Zeile As Long 'BITTE - Zeilen sind vom Typ LONG
Dim Spalte As Long 'ditto
'Dim Max As Integer 'ichglaub nicht an INTEGER, daher
Dim myMax As Double 'WorksheetFunction.Max Method ergibt Double
'For Spalte = 7 To 115 'WOZU?
For Zeile = 17 To 20
'If Cells(Zeile, 2) = TextDammhöhe Then 'hier geschenkt
'ermittle Maximum im Bereich Zeile (Spalte 9,11,13 ff)
myMax = Krücke(Zeile)
'einfärben
For Spalte = 7 To 115 Step 2
If Cells(Zeile, Spalte).Value = myMax Then Cells(Zeile, Spalte).Interior.ColorIndex = 6
Next Spalte
' End if
Next Zeile
'Next Spalte
End Sub
Private Function Krücke(myRow As Long) As Double
Dim arrChk() As Variant 'prüfe in Zeile
Dim x As Long, y As Long
arrChk = Range(Cells(myRow, 9), Cells(myRow, 115))
With Columns(Columns.Count)
For x = LBound(arrChk, 2) To UBound(arrChk, 2) Step 2
y = y + 1
.Cells(y).Value = arrChk(1, x)
Next x
Krücke = WorksheetFunction.Max(Range(.Cells(1), .Cells(y)))
.Clear
End With
End Function
|