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-Eigenschaft
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