VBA: Zellen farblich ausfüllen
#1
Hallo Leute!

Ich versuche gerade die Farbe von 2 Spalten in die Spalte B zu kopieren und entsprechend auf die gesamte Gruppe (Spalte E) zu vererben.

Code:
.Interior.ColorIndex = 4 (grün) /Prio. 3
>
.Interior.ColorIndex = 6 (gelb) /Prio. 2
>
.Interior.ColorIndex = 3 (rot) /Prio. 1

Jeder Gruppe wird mithilfe der Spalte E gebildet.
Enthalten innerhalb jeder Gruppe (Spalte E) in der Spalte S alle Zellen den Wert 100, so kopiere entsprechend der Prio (siehe oben) die höchste Farbe innerhalb der Spalte R in die Spalte B.
Sind nicht in allen Zellen der Wert 100 zu finden (oder leer) so kopiere die höchste Farbe innerhalb der Spalte K nach Spalte B.
Dabei soll die Farbe in jede Zeile der Spalte B innerhalb der gesamten Gruppe ausgefüllt werden.
Mometan habe ich folgenden Ansatz, komme jedoch nicht weiter:

Code:
Sub ColumnB()
  
    With tblOne
      
            For Zeile = 2 To ZeileMax
           
                If .Cells(Zeile, 5) <> .Cells(Zeile - 1, 5) Then
                 If .Range("A" & Zeile).Value = 100 Then
                 .Range("B" & Zeile).Interior.Color = Range("R" & Zeile).Interior.Color
                 Else
                 .Range("B" & Zeile).Interior.Color = Range("K" & Zeile).Interior.Color
               
                End If
                                       
           Next Zeile
           
    End With
   
End Sub
 Hat jemand eine Idee/ Vorschlag/ Ansatz?


Beste Grüße
Joshua
Top
#2
Hallo,

an welcher Stelle deines Codes weist du denn den ColorIndex (die Farbe) der Zellen zu?
96 
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Top
#3
(14.06.2017, 10:02)Glausius schrieb: Hallo,

an welcher Stelle deines Codes weist du denn den ColorIndex (die Farbe) der Zellen zu?

Die entsprechende Farbe in Spalte K&R werden bereits in einer vorherigen Prozedur zugewissen.

Oder meinst du etwas anderes?
Top
#4
Hey,

in der CodeZeile

Code:
.Range("B" & Zeile).Interior.Color = Range("R" & Zeile).Interior.Color

sehe ich weder einen ColorIndex noch irgendeine Variable, die den Farbindex enthält! Wo ist der?
96 
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Top
#5
Moin!
Warum nicht einfach per bedingter Formatierung?
Wenn ich da was von Prio lese, müssen ja Regeln vorhanden sein.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#6
(14.06.2017, 10:09)Glausius schrieb: Hey,

in der CodeZeile

Code:
.Range("B" & Zeile).Interior.Color = Range("R" & Zeile).Interior.Color

sehe ich weder einen ColorIndex noch irgendeine Variable, die den Farbindex enthält! Wo ist der?

Die entsprechende Zelle besitzt ja bereits eine Farbe. Diese wird in dieser CodeZeile kopiert.

Ist es also zwingend notwendig den Farbindex zu kopieren?

Enstprechend vielleicht so?:
Code:
.Cells(Zeile, 2).Interior.ColorIndex = .Cells(Zeile, 11).Interior.ColorIndex


@RPP63:
Es geht um einen prozeduellen Ablauf der WorkbookOpen-Events. VBA ist hierfür notwenig.
Top
#7
Hallöchen,

Fragen ....
Zitat:Enthalten innerhalb jeder Gruppe (Spalte E) in der Spalte S alle Zellen den Wert 100

Wie definieren sich die Gruppen (Zellen)? Die 100 könnte man anhand der Anzahl Zellen abgleichen oder über Mittelwert der Gruppe oder ... Aber zuerst einmal muss man wissen, um welche Zellen es in einer Gruppe geht und wie die Gruppen abgegrenzt sind.

Zitat:For Zeile = 2 To ZeileMax
In Deinem Code beginnst Du immer mit Zeile 2. Wenn Du mehrere Gruppen hast, müsste es doch auch verschiedene Anfänge und Enden geben.

Zitat:If .Range("A" & Zeile).Value = 100 Then
In Deinem Code prüfst Du in Spalte A auf 100 und nicht in Spalte S ...

Zitat:kopiere entsprechend der Prio (siehe oben) die höchste Farbe innerhalb der Spalte R in die Spalte B
Hier geht es sicher um die Zeilen, die die Gruppe betreffen und nicht die ganze Spalte?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


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