Min/Max-Wert farbig markieren

Guten Mittag.
Ich bin es mal wieder mit einer Frage, bei der ich wie der sprichwörtliche Ochse vorm Berg stehen =)
Wir haben folgende Aufgabe bekommen, bei der ich einfach nicht weiterkomme:
„Programmieren Sie ein Makro MaxMinFarbe, das die Zelle mit dem größten Wert
innerhalb der aktuellen Spalte mit gelbem Hintergrund versieht und die Zelle mit dem
kleinsten Wert mit grauem Hintergrund.“

Ich bin schon so weit, das ich weiß, das man mit folgenden Funktionen den Max/Min-Wert angezeigt bekommt.
"Sub Minimum()
MsgBox WorksheetFunction.Min(Range(„A:A“))
End Sub

Sub Maximum()
MsgBox WorksheetFunction.Max(Range(„A:A“))
End Sub"

Das man mit „cells(z,s).interior.color=rgb(r,g,b)“ eine Zelle farbig markieren kann, weiß ich auch. Nun hab ich aber keine Ahnung, wie man beides am besten miteinander verknüpft.
Ich hoffe meine Fragestellung ist halbwegs einleuchtend und jemand kann mir helfen.
Vielen Dank schonmal.
Mfg
Simon E.

„Programmieren Sie ein Makro MaxMinFarbe, das die Zelle mit
dem größten Wert
innerhalb der aktuellen Spalte mit gelbem Hintergrund versieht
und die Zelle mit dem
kleinsten Wert mit grauem Hintergrund.“

Hallo Simon,

da steht doch "aktuelle Spalte, also nix mit „A:A“ :smile:

Da sich so eine Liste ja auch ändern kann, im Code anfangs alte Farben löschen.

Wenn die dir 56(sind weniger) Farben von Excel reichen, nimm ColorIndex anstatt Color.
Der zweite Code färbt A1:A56 entsprechen der farbnummer der Zeile.
Match entspricht Vergleich() in Excel.

Option Explicit
'
Sub tt()
Dim Spa As Long, MaxZeile As Long, MinZeile As Long
Spa = ActiveCell.Column
MaxZeile = Application.Match(Application.Max(Columns(Spa)), Columns(Spa), 0)
MinZeile = Application.Match(Application.Min(Columns(Spa)), Columns(Spa), 0)
Columns(Spa).Interior.ColorIndex = xlNone
Cells(MaxZeile, Spa).Interior.ColorIndex = 34
Cells(MinZeile, Spa).Interior.ColorIndex = 3
End Sub
'
Sub Farben()
Dim Zei As Long
For Zei = 1 To 56
 Cells(Zei, 1).Interior.ColorIndex = Zei
Next Zei
End Sub

Gruß
Reinhard

Ich bin schon so weit, das ich weiß, das man mit folgenden
Funktionen den Max/Min-Wert angezeigt bekommt.
"Sub Minimum()
MsgBox WorksheetFunction.Min(Range(„A:A“))
End Sub

Sub Maximum()
MsgBox WorksheetFunction.Max(Range(„A:A“))
End Sub"

Das man mit „cells(z,s).interior.color=rgb(r,g,b)“ eine Zelle
farbig markieren kann, weiß ich auch. Nun hab ich aber keine
Ahnung, wie man beides am besten miteinander verknüpft.
Ich hoffe meine Fragestellung ist halbwegs einleuchtend und
jemand kann mir helfen.
Vielen Dank schonmal.
Mfg
Simon E.

Nachfrage
Hallo Simon,

was soll eigentlich geschehen, wenn es mehrere gleichgroße Max/Mins gibt?

Gruß
Reinhard

Hallo Reinhard.
Erstmal vielen Dank für die schnelle Hilfe.
Zu deiner Nachfrage:
Das steht so Gott sei Dank nicht in der Aufgabe. Zu der Aufgabe gibt es eine Excel-Tabelle mit ganz vielen Zahlen, anhand dessen man die Aufgabe machen soll. Da ist für gesorgt, das es nicht mehrere gibt.

Grüezi Simon

Wir haben folgende Aufgabe bekommen, bei der ich einfach nicht
weiterkomme:
„Programmieren Sie ein Makro MaxMinFarbe, das die Zelle mit
dem größten Wert
innerhalb der aktuellen Spalte mit gelbem Hintergrund versieht
und die Zelle mit dem
kleinsten Wert mit grauem Hintergrund.“

Und wer um alles in der Welt stellt solche Aufgaben in den Raum?

Das kannst Du mit der Bedingten Formatierung ohne Probleme und im Nu tun, ohne dass VBA dafür notwendig ist.

…oder geht es um eine reine Übung um das Programmieren zu erlernen…?

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo Thomas.
Es geht dabei um eine reine Übung zum Erlernen von VBA-Programmierung.
Also muss es sein. Aber dank Reinhard habe ich die Lösung schon. Aber trotzdem Danke.