VBA Code für Farben Intervall nach Ermittlung des Mittelwertes mit Bedingte Formatier
#1
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.
.xlsx   interval_farbe_test.xlsx (Größe: 10,8 KB / Downloads: 6)

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
Antworten Top
#2
Hallöchen,

mit WorkSheetFunction kannst Du im VBA ganz normale Excel-Funktionen nutzen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
Danke...aber weiterhelfen tut es wirklich nicht.
Antworten Top
#4
Hast du das mal versucht?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
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.
Antworten Top
#6
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Niko
Antworten Top
#7
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste