AW: Maximum ermitteln in Zellen mit Formeln
17.01.2025 14:24:42
Max
Danke Yal
Da es sich bei meiner Problematik nur um eine Zeile handelt habe ich keine Schleife für die Zeile angesetzt.
Der Code würde Funktionieren, wenn ich in der betroffenen Zeile "nur" Zahlen hätte. Allerdings sind die Zellen mit z.b. =E45/E30 "besetzt".
Ich bin jede Kombination durchgegangen und alles funktioniert, solange nicht =E45/E30 in der Zelle steht.
Hier der gesamte Code. Allerdings funktionieren 3/4 dessen. Ein paar Leerzeilen habe ich entfernt, allerdings macht es sich für mich so leichter "durchzusehen".
Sub Maximum_vglMonate()
Dim lngSpalteSchleife As Long, lngLetzteSpalte As Long, lngLetzteSpalteBearbeitet As Long, lngZeileSchleife As Long, lngZeileSchleifenEnde As Long
Dim rngBildeingang As Range, rngbearbBilder As Range, rngUebergabe As Range, rngQoute As Range
Dim wsf As WorksheetFunction, lngMax As Long, rngZelle As Range, lnga As Long, lngb As Long, c As Long
Set wsf = Application.WorksheetFunction
With Tabelle13
lngLetzteSpalte = .UsedRange.Columns.Count
lngLetzteSpalteBearbeitet = lngLetzteSpalte - 1
lngZeileSchleifenEnde = "14"
For lngZeileSchleife = 3 To lngZeileSchleifenEnde
Set rngBildeingang = .Range(.Cells(lngZeileSchleife, 2), .Cells(lngZeileSchleife, lngLetzteSpalteBearbeitet))
rngBildeingang.Interior.ColorIndex = xlColorIndexNone
lngMax = wsf.Max(rngBildeingang)
For Each rngZelle In rngBildeingang
If rngZelle.Value = lngMax Then
rngZelle.Interior.Color = RGB(200, 255, 200)
End If
Next rngZelle
Next lngZeileSchleife
lngZeileSchleifenEnde = "29"
For lngZeileSchleife = 18 To lngZeileSchleifenEnde
Set rngbearbBilder = .Range(.Cells(lngZeileSchleife, 2), .Cells(lngZeileSchleife, lngLetzteSpalteBearbeitet))
rngbearbBilder.Interior.ColorIndex = xlColorIndexNone
lngMax = wsf.Max(rngbearbBilder)
For Each rngZelle In rngbearbBilder
If rngZelle.Value = lngMax Then
rngZelle.Interior.Color = RGB(200, 255, 200)
End If
Next rngZelle
Next lngZeileSchleife
lngZeileSchleifenEnde = "44"
For lngZeileSchleife = 33 To lngZeileSchleifenEnde
Set rngUebergabe = .Range(.Cells(lngZeileSchleife, 2), .Cells(lngZeileSchleife, lngLetzteSpalteBearbeitet))
rngUebergabe.Interior.ColorIndex = xlColorIndexNone
lngMax = wsf.Max(rngUebergabe)
For Each rngZelle In rngUebergabe
If rngZelle.Value = lngMax Then
rngZelle.Interior.Color = RGB(200, 255, 200)
End If
Next rngZelle
Next lngZeileSchleife
Set rngQoute = .Range(.Cells(46, 2), .Cells(46, lngLetzteSpalteBearbeitet))
rngQoute.Interior.ColorIndex = xlColorIndexNone
lngMax = wsf.Max(rngQoute)
For Each rngZelle In rngQoute
If rngZelle.Value = lngMax Then
rngZelle.Interior.Color = RGB(200, 255, 200)
End If
Next rngZelle
End With
End Sub