Clever-Excel-Forum

Normale Version: VBA Code für Farben Intervall nach Ermittlung des Mittelwertes mit Bedingte Formatier
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo an alle,

 
Mittelwert mit Regel von Bedingter Formatierung ermittelt und Zellen höher als Mittelwert mit Farbe.
Soweit so gut, jetzt kommt der Twist…Wenn Mittelwert mit bedingte Formatierung ermittelt ist,
dann Zellen nach Farbe im Intervall einrichten (Farbe, keine Farbe, Farbe, keine Farbe, etc.).

Anbei die Mappe mit dem Beispiel. [attachment=41575]

Spalte D & E ist wie es sein soll
Spalte A & B sowie G & H sind als Beispiel wie die Zellen stehen könnten nach der Bedingte Formatierung.
Wie bekomme ich es mit VBA hin wie Spalte D & E ?
Ist es überhaupt möglich? …oder könnte man es mit Formel bewerkstelligen ohne Hilfs Zellen/spalte?
 
Danke im Voraus

78

Niko
Hallöchen,

mit WorkSheetFunction kannst Du im VBA ganz normale Excel-Funktionen nutzen.
Danke...aber weiterhelfen tut es wirklich nicht.
Hast du das mal versucht?
Habe es nicht versucht, da ich als Laie VBA nur als Copy-Paste Anwendung vom Internet kenne  Sadsmiley
 Deswegen suche ich auch ein Ansatz hier wie so etwas mit VBA bewerkstelligen könnte, an den Code herumschnipseln als Anfänger kann ich…eigener Massen  92

 
Danke.
Hallöchen,

Deine VBA-Status kenn ich ja nicht Sad

Also, da kann man bisschen was mit Aufzeichnen anfangen und dann schauen, wie man das einbaut.
Zuerst muss man sich aber Gedanken machen, wie man das mathematisch hinbekommt, hat also erst mal noch nix mit VBA zu tun.
Ich nehme an, alles was größer als der Mittelwert ist (oder gleich), gehört zu den gesuchten 50%

Da gibt es Funktionen und deren Eingabe in eine Zelle kann man aufzeichnen. Das sieht dann so aus

Code:
Sub Makro1()
'
' Makro1 Makro
'

'
    ActiveCell.FormulaR1C1 = "=AVERAGE(R2C5:R21C5)"
    Range("F3").Select
End Sub

Nächste Überlegung - ich prüf das Zeile für Zeile. Dazu nehm ich eine Schleife. Geht in Zeile 2 Los und ich gehe mal fix bis Zeile 20
For iCnt = 2 To 20
Next

iCnt hab ich willkürlich ls Name für die Schleifenvariable festgelegt.

Die Funktion muss ich so einbauen - auch für den Bereich von Zeile 2 bis 20
WorksheetFunction.Average(Range("E2:E20"))

Für den Vergleich nutze ich If ... Then ... und eine Zellposition kann man z.B. aus den Koordinaten Zeile,Spalte ermitteln.

Das ganze könnte dann so aussehen.

Code:
Sub test()
Dim iCnt%
For iCnt = 2 To 20
If Cells(iCnt, 5).Value >= WorksheetFunction.Average(Range("E2:E20")) Then Cells(iCnt, 6).Value = "x"
Next
End Sub

Mein Code schreibt hier in Spalte 6 ein "x" wenn der Wert zu der Bedingung passt. Das Einfärben kann man auch aufzeichnen, also dann nicht in Spalte 6 den Wert x sondern in Spalte 5 die Farbe.

Eventuell sollte man aber vorher im Bereich 2:20 die Farbe entfernen. Kann man auch aufzeichnen. Siehe
Excel-Word-Makrorekorder
Wow...Danke für die Hilfe...vor allem für die Anweisungen, echt einleuchtend Idea .
Vielen, Vielen Dank…für Lösungsvorschlag und Lektion…speziell für die Lektion .
So etwas nenne ich Praxisorientiertes Lernen 70 .



Thx again 78