Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Maximum ermitteln in Zellen mit Formeln

Forumthread: Maximum ermitteln in Zellen mit Formeln

Maximum ermitteln in Zellen mit Formeln
17.01.2025 13:02:56
Max
Vorab vielen Dank allen Antwortenden!

Ich habe eine Tabelle mit mehreren Bereichen (drei Themengebiete jeweils mit Spalten als Jahr & Zeilen als Monat).
Das Maximum der Spalten und Jahre bekomme ich hin. Allerdings habe ich jetzt noch folgende Problemfälle:
Je Bereich eine Zeile mit Spaltensummen und zum Schluss eine Zeile mit Quoten.

Aktuell benutze ich folgenden code:


With Tabelle13
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


Meine Vermutung ist, dass ich entweder in der Schleife meine Berechnungen machen muss (entfernt die Formeln aus dem Arbeitsblatt) oder
es gibt einen Befehl der die Formelergebnisse als Wert ausgibt mit dem ich arbeiten kann.
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Maximum ermitteln in Zellen mit Formeln
17.01.2025 13:34:21
Yal
Hallo Max,

zuerst pro Zeile schleifen, dann pro Zelle, die dann nur innerhalb einer Zeile sind.

Sub Test()

Dim rngQuote As Range
Dim lngMax As Long 'Achtung: bedeutet keine Nachkommastelle! sonst Double verwenden.
Dim Zeile As Row
Dim rngZelle As Range

With Tabelle13
Set rngQuote = .Range(.Cells(46, 2), .Cells(46, lngLetzteSpalteBearbeitet))
rngQuote.Interior.ColorIndex = xlColorIndexNone
lngMax = WorksheetFunction.Max(rngQuote)
For Each Zeile In rngQuote.Rows
'hier kommen die Initialisisreung pro Zeile
For Each rngZelle In Zeile
If rngZelle.Value = lngMax Then
rngZelle.Interior.Color = RGB(200, 255, 200)
'hier sonstige zellenbezogene Behandlung in der Zelle
End If
Next rngZelle
'Abschluss pro Zeile
Next Zeile
End With
End Sub

Vermeide leere Zeilen im Code. Lesbarkeit wird dadurch nicht besser.
Code am beste von "Sub .." bis "End Sub" posten,
Variable immer deklarieren.

VG
Yal
Anzeige
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
Anzeige
AW: Maximum ermitteln in Zellen mit Formeln
17.01.2025 16:17:33
Yal
Hallo Max,

eigentlich gibt es keine Grund, warum dein Code nicht funktionieren, ausser wenn Du einen Ratio -eindeutig mit Nachkommastellen- in einer Variable von Typ Long (ohne NK-Stellen), aber das sollte eigentlich kein Problem sein.

Dein Code könnte man so zusammenschrumpfen:

Sub Maximum_vglMonate()


Dim Block As Range
Dim lngMax As Double
Dim rngZelle As Range

With Worksheets("Tabelle13")
For Each Block In Array("3:14", "18:29", "33:44", "46:46")
With Intersect(.Range(Block), .UsedRange).Offset(1)
.Interior.ColorIndex = xlColorIndexNone
lngMax = WorksheetFunction.Max(.Cells)
For Each rngZelle In .Cells
If rngZelle.Value = lngMax Then rngZelle.Interior.Color = RGB(200, 255, 200)
Next rngZelle
End With
Next Block
End With
End Sub

VG
Yal
Anzeige
AW: Maximum ermitteln in Zellen mit Formeln
21.01.2025 09:31:25
Max
Mit Arrays habe ich mich noch nicht auseinandergesetzt. Sollte ich wohl dringend mal machen...

Die Nachkommastellen könnten tatsächlich das Problem sein. Ich werde mich die Tage an das Projekt setzen und das umsetzen.

Danke dir nochmals!
AW: Maximum ermitteln in Zellen mit Formeln
21.01.2025 10:04:11
Max
Meine Überlegung nachdem ich mir deinen Code "nur" angeschaut habe ist:

Sucht er mit dem Array nicht das Maximum im gesamten Block? Ich hätte ja gerne sowohl das Maximum der Zeile (aktuelles Problem) und das Maximum der Spalte.
So kann ich das Maximum von z.b. Januar verglichen mit den Vorjahren hervorheben und das Maximum aus z.b. 2024.
Anzeige
AW: Maximum ermitteln in Zellen mit Formeln
21.01.2025 10:20:39
Yal
Mein lieber Max,

Du redest von Vorjahr, Januar und 2024, aber das einzige, was ich von deinem Vorhaben weiß, sind diese paar Zeilen Code...

Wenn Du gezielte Hilfe haben möchtest, müsstest Du eine aussagefähigen Datei posten (bereinigt von allem, was nicht im Netz gehört, aber mit Daten worauf man arbeiten kann) und ein klares Bild der erwarteten Ergebnisse mitgeben.

VG
Yal
Anzeige
AW: Maximum ermitteln in Zellen mit Formeln
24.01.2025 12:32:47
Max
Lieber Yal ich danke Dir!

Der Hinweis mit der Kommazahl war Goldwert.

Leider gibt mein Arbeitsplatz kein Spielraum eine Datei jeglichen Formates hochzuladen.

Ich werde mir in Zukunft Arrays anschauen und den Code ggf. überarbeiten.

Vielen Dank nochmals auch an die community, welche mir schon mehrfach geholfen hat.
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18