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.

Zellen Farben zuweisen über VBA
#1
Hallo Forum,

ich bräuchte mal kurz Eure Hilfe.

ich habe ein arbeitsblatt und möchte in zwei Spalten jeweils den einzelnen Zellen bei bestimmten Einträgen eine Farbe zuweisen.
Da es sich um mehr als 7 verschiedene Farben handelt habe ich es in VBA versucht.

Das Ergebnis es funktioniert nur eine Farbe.
Da ich in VBA nicht so firm bin, habe ich einen Fehler gemacht.
Mein Code sieht folgendermaßen aus.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 14 Or Target.Column = 15 Then

If Target.Value = 1 Then
    Target.Interior.ColorIndex = 3
If Target.Value = 2 Then
    Target.Interior.ColorIndex = 16
If Target.Value = 3 Then
    Target.Interior.ColorIndex = 6
If Target.Value = 4 Then
    Target.Interior.ColorIndex = 5
If Target.Value = 5 Then
    Target.Interior.ColorIndex = 4
If Target.Value = 6 Then
    Target.Interior.ColorIndex = 46
If Target.Value = 7 Then
    Target.Interior.ColorIndex = 7
   
Else
Target.Value = ""
End If
   End If
       End If
           End If
               End If
                   End If
                       End If
                           End If
                           
   
End Sub

Kann mir jemand weiterhelfen.

Im Voraus vielen Dank

Gruß
Hubert
Antworten Top
#2
Hallo,

versuche jede if-Abfrage direkt abzuschließen, also z.B.


Code:
If Target.Value = 1 Then
   Target.Interior.ColorIndex = 3
end if


mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • cavok
Antworten Top
#3
Hallo Fennek,

Bingo jetzt funktioniert es  :19:  :19:  

Vielen Dank und und einen schönen Tag


Gruß
Hubert
Antworten Top
#4
Hi,

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 14 Or Target.Column = 15 Then
    For Each Target In Target
        Target.Interior.ColorIndex = Choose(Target.Value, 3, 16, 6, 5, 4, 46, 7)
    Next
End If
End Sub

geht ein wenig kürzer....:)
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
[-] Folgende(r) 1 Nutzer sagt Danke an chris-ka für diesen Beitrag:
  • cavok
Antworten Top
#5
Hallo Chris,

nochmals Danke für Deine verkürzte Version des Codes.

Ich habe die verkürzte Version angewandt und auf andere Spalten übertragen. Das wird jedoch nicht akzeptiert.
Ich bekomme eine Fehlermeldung.

Woran kann das liegen?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 3 Then       'Funktioniert nicht'
   For Each Target In Target
       Target.Interior.ColorIndex = Choose(Target.Value, 43)
   Next
   End If


If Target.Column = 5 Then                  'Funktioniert nicht'
   For Each Target In Target
       Target.Interior.ColorIndex = Choose(Target.Value, 38)
   Next
   End If


If Target.Column = 7 Then                    'Funktioniert nicht'
   For Each Target In Target
       Target.Interior.ColorIndex = Choose(Target.Value, 44)
   Next
End If
   
       
If Target.Column = 14 Or Target.Column = 15 Then    'funktioniert'
   For Each Target In Target
       Target.Interior.ColorIndex = Choose(Target.Value, 3, 16, 6, 5, 4, 46, 7)
   Next
End If
End Sub

Gruß
Hubert
Antworten Top
#6
Hallo,

Zu früh gepostet. :16:

das ist natürlich Nonsens.
Ich habe die Spalten integriert. die Farben existieren ja schon.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
        
If Target.Column = 3 Or Target.Column = 5 Or Target.Column = 7 Or Target.Column = 14 Or Target.Column = 15 Then
    For Each Target In Target
        Target.Interior.ColorIndex = Choose(Target.Value, 3, 16, 6, 5, 4, 46, 7)
    Next
End If
End Sub


Einen schönen Feiertag

Gruß
Hubert
Antworten Top


Gehe zu:


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