Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten Top
#2
Hallo,

an welcher Stelle deines Codes weist du denn den ColorIndex (die Farbe) der Zellen zu?
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Antworten Top
#3
(14.06.2017, 09: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?
Antworten 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?
[Bild: attachment-190.gif]
Gruß Günter
aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Antworten 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)
Antworten Top
#6
(14.06.2017, 09: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.
Antworten 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)
Antworten Top


Gehe zu:


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