Zellen färben in VBA

Moderator: ModerationP

Zellen färben in VBA

Beitragvon Grace13 » 09. Mär 2021, 14:06

Hallo zusammen,

ich habe eine kurze Frage zum Thema Zellen färben in VBA. Ich hätte gerne, dass

o wenn in der Zelle D15 der Wert größer gleich 2 ist
ODER
o wenn der Wert der Zelle F11 um 10 Prozent kleiner ist als von der Zelle AM5
ODER
o wenn der Wert der Zelle F11 kleiner als 2500 ist

DANN soll sich die Zelle F13 grau verfärben.


Die Werte werden mithilfe einer Userform in die oben genannten Zellen eingetragen...

Ich habe es mit folgendem Code versucht, doch es funktioniert leider nicht, vielleicht könnt ihr mir weiterhelfen. Ich habe schon viel im Forum gesucht, doch leider noch nichts Passendes gefunden...


Private Sub Worksheet_Change(ByVal Target As Range)
Select Case True
Case Worksheets("460").Range("D15").Value >= "2"
Worksheets("460").Range("F13").Interior.Color = RGB(234, 234, 234)
Case Worksheets("460").Range("F11").Value <= Worksheets("460").Range("AM5").Value * 0.9
Worksheets("460").Range("F13").Interior.Color = RGB(234, 234, 234)
Case Worksheets("460").Range("F11").Value <= "2500"
Worksheets("460").Range("F13").Interior.Color = RGB(234, 234, 234)
Case Else
Worksheets("460").Range("F13").Interior.ColorIndex = RGB(255, 255, 255)
End Select
End Sub

Ganz liebe Grüße
Grace
Grace13
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 42
Registriert: 26. Sep 2020, 17:25

Re: Zellen färben in VBA

Beitragvon Oberon » 09. Mär 2021, 15:16

Hi,

versuch es mal so:

Code: Alles auswählen
Private Sub Worksheet_Change(ByVal Target As Range)
Select Case True
Case Worksheets("460").Range("D15").Value >= 2
Worksheets("460").Range("F13").Interior.Color = RGB(234, 234, 234)
Case Worksheets("460").Range("F11").Value <= Worksheets("460").Range("AM5").Value * 0.9
Worksheets("460").Range("F13").Interior.Color = RGB(234, 234, 234)
Case Worksheets("460").Range("F11").Value <= 2500
Worksheets("460").Range("F13").Interior.Color = RGB(234, 234, 234)
Case Else
Worksheets("460").Range("F13").Interior.Color = xlNone
End Select
End Sub


Sinnvoll wäre es noch den Code nicht bei jeder Veränderung komplett durchlaufen zu lassen (Abfrage per Intersect).
Eine einfache "If"-Abfrage wäre hier vermutlich vorzuziehen wenn VBA eingesetzt werden muss.
Ich würde es mit der bedingten Formatierung lösen.

BTW: Was funktioniert eigentlich nicht?

CU
Oberon
Oberon
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1054
Registriert: 10. Mai 2016, 15:30

Re: Zellen färben in VBA

Beitragvon Grace13 » 09. Mär 2021, 15:41

Zu deiner Frage, was nicht funktioniert hat... die Zelle F13 wurde nicht grau, auch wenn die Bedingungen, die in der Formel standen, erfüllt waren...

Aber jetzt funktioniert's!

Der Fehler lag in dieser Zeile
Worksheets("460").Range("F13").Interior.ColorIndex = RGB(255, 255, 255)

Das "Index" war zu viel... jetzt klappt's :)


Danke!
Grace13
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 42
Registriert: 26. Sep 2020, 17:25

Re: Zellen färben in VBA

Beitragvon Oberon » 09. Mär 2021, 15:48

Hi,

das "Index" war nicht für das nicht grau werden der Zelle verantwortlich.
Das lag wahrscheinlich daran, dass Du die Zahlen (2, 2500) in "" gesetzt hast und dadurch vermutlich Zahlen mit Text verglichen wurden.

CU
Oberon
Oberon
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1054
Registriert: 10. Mai 2016, 15:30

Re: Zellen färben in VBA

Beitragvon Grace13 » 09. Mär 2021, 16:01

Die Zahlen 2 und 2500 stehen immer noch in der Klammer und es funktioniert trotzdem...
Grace13
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 42
Registriert: 26. Sep 2020, 17:25

Re: Zellen färben in VBA

Beitragvon Oberon » 09. Mär 2021, 16:37

Grace13 hat geschrieben:Die Zahlen 2 und 2500 stehen immer noch in der Klammer und es funktioniert trotzdem...


Gut möglich, dass es jetzt funktioniert. An dem "Index" lag es aber nicht. Evtl. solltest Du das nochmal überprüfen.

CU
Oberon
Oberon
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1054
Registriert: 10. Mai 2016, 15:30

Re: Zellen färben in VBA

Beitragvon RPP63 » 09. Mär 2021, 16:40

Doch oberon, daran lag es.
Folgendes (aus der Threaderöffnung) ergibt Murks:
Worksheets("460").Range("F13").Interior.ColorIndex = RGB(255, 255, 255)
RGB(255, 255, 255) ergibt 16777215
der Colorindex geht aber nur bis 56 (oder so)

Gruß Ralf
Benutzeravatar
RPP63
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 11495
Registriert: 19. Okt 2012, 17:41
Wohnort: mitten im Pott

Re: Zellen färben in VBA

Beitragvon Oberon » 09. Mär 2021, 16:44

RPP63 hat geschrieben:Doch oberon, daran lag es.
Folgendes (aus der Threaderöffnung) ergibt Murks:
Worksheets("460").Range("F13").Interior.ColorIndex = RGB(255, 255, 255)
RGB(255, 255, 255) ergibt 16777215
der Colorindex geht aber nur bis 56 (oder so)

Gruß Ralf


Hi,

das läuft dann in einen Fehler. Wenn das mit "Zelle wird nicht grau" gemeint war nehm ich alles zurück.

CU
Oberon

Edit: Andererseits frag ich mich jetzt, was sonst passiert sein soll.
Oberon
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1054
Registriert: 10. Mai 2016, 15:30


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: DaPeif und 12 Gäste