Clever-Excel-Forum

Normale Version: Zell Adresse von Farbigen Zellen ermitteln
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Excel Gemeinde,

Ich versuch mit diesem Code:   

                                               For Spalte2 = 9 to 29 Step 4

                                               Set MeinBereich = .Cells(30, Spalte2).Interior.ColorIndex = 4

                                               Sieger = Application.WorksheetFunction.Max(MeinBereich)
                                      
                                              .Cells(31, 37) = Sieger

                                                Next Spalte2

Den Max Wert zu ermitteln aber klappt nicht Fehler = Objekt Erforderlich obwohl ich die Variable MeinBereich als Objekt Deklariert habe

und hoffe auf Eure Hilfe
Wenn du MeinBereich als Objekt (besser As Range) deklariert hast, Freddy,
musst du ihr auch ein Objekt (einen Bereich) zuweisen! Du weist aber das Ergebnis eines Vergleichs, also einen Booleschen Wert zu. Deshalb der Fehler.
Auch ist die Schleife so nicht hilfreich, weil MeinBereich bei jedem Durchlauf neu gesetzt wird. Das Max innerhalb der Schleife ist dann auch kaum sinnvoll.
Ich empfehle stattdessen die Find- und FindNext-Methode. Außerdem gibt's noch SpecialCells.
Letztlich wirst du so einen unzusammenhängenden Bereich (Areas → ggf über Union) erhalten, auf den du dann Max anwenden kannst.
Gruß aus dem Wasserwandererparadies Brandenburg, Castor
Servus Castor,

Also bist Du der Meinung ich sollte "Sieger = Application.WorksheetFunction.Max(MeinBereich)

mit der find next Methode auslösen aber wie finde ich dann die Grün markierten Zellen?

Mein Problem ist dass die Werte immer Unterschiedlich in verschiedenen Zellen sein Können
ich hänge mal die Mappe an
[attachment=11989]

Und bitte könntest Du mir mit einem Code Beispiel auf die Sprünge helfen
Habe leider kaum Zeit, so kurz vorm Urlaub, Freddy,
und kann mich deshalb nicht auf die Schnelle in deine BspTab hineindenken (dein Programm ist mir auch etwas zu wenig strukturiert, was ein zusätzliches Problem wäre). Aber allgemeinere Programmbspp sind noch drin.
Mit 3 UDFs könnte man ein Werte-Maximum von Zellen einer bestimmten Zellfarbe feststellen, im Folgenden sogar inkl Farbe aus bedingter Formatierung (ab Xl14/2010), wobei hier RGB-Farbwerte, keine uneindeutigen Farbindizes benutzt werden (65280 entspricht dem Grün mit Standardindex 4):
{=MAX(NoErrRange(F12:AF12;;TxEval(WECHSELN("CellColor(#)";"#";ADRESSE(ZEILE(F12:AF12);SPALTE(F12:AF12);4)))=65280))}
Das ist eine Matrixformel, die ohne die äußeren {} eingegeben und mit [strg][umsch][enter] abgeschlossen werden muss.
Du kannst dir natürlich auch die Programme der UDFs ansehen und daraus ggf Lösungen für dich ableiten:
NoErrRange: http://www.herber.de/forum/archiv/1508to...tm#1508215
CellColor & TxEval: http://www.herber.de/forum/archiv/1476to...ml#1477400
Hinweis: TxEval  wird hier benötigt und CellColor muss in Textform übergeben und dann ausgewertet werden, weil Xl sonst die Ausführung dieser UDF verhindert, da sie die neue objektbildende Range-Eigen­schaft DisplayFormat verwendet. MS hat die nicht für die Anwendung in Zellformeln freigegeben, aber in Subprozeduren ist das problemlos möglich (in UDFs im Zellformeleinsatz letztlich auch, aber nur so). ;)
Morrn, Castor
(Hier ist zZ Land unter!)
Danke für die Antwort

Muß mich da mal einarbeiten ist wenn ich ehrlich bin etwas zu Hoch für mein Wissen in VBA

Bist Du Etwa in der Nähe von Berlin ? wg. Land Unter

Vielleicht geht nach Deinem Urlaub noch etwas zur Aufklärung meinerseits 

Danke Trotzdem wenn ich es auch nicht Kapiert habe
Ja, aber das gilt für ganz Brandenburg, Freddy;
du kannst aber auch die fertige Formel verwenden, falls sie ein/den richtigen Bereich trifft. Ich hatte sie mit anderen Daten getestet, da deine in dem Bereich zu "eintönig" sind, um die Wirkung deutlich zu machen.
So, jetzt aber weg…
Bis evtl dann, Castor