Thema Datum  Von Nutzer Rating
Antwort
Rot Zellen über VBA formatieren aufgrund durch Formel eingetragener Werte
10.03.2013 17:14:36 Stefan
NotSolved
10.03.2013 19:08:35 Gast87662
NotSolved

Ansicht des Beitrags:
Von:
Stefan
Datum:
10.03.2013 17:14:36
Views:
2455
Rating: Antwort:
  Ja
Thema:
Zellen über VBA formatieren aufgrund durch Formel eingetragener Werte

Hallo zusammen,

ich habe lange nach einer Lösung für mein Problem gesucht, komme aber einfach nicht weiter. Da ich noch ein ziemlicher Anfänger in Sachen VBA bin, weiß ich auch nicht so richtig wonach ich überhaupt suchen muss, daher verzeiht mir bitte, falls ich nach etwas frage das vielleicht schon einmal hier besprochen wurde...

Zu meinem Problem.

Ich habe ein Excel-Dokument mit mehreren Arbeitsblättern, und in einem dieser Arbeitsblätter werden über Formeln Zellen mit Werten aus einem anderen Arbeitsblatt gefüllt. Das funktioniert wunderbar. Jetzt will ich aber, je nach Wert der von der Formel eingetragen wird, die Zelle farbig formatiert haben.

Die unterschiedlichen Werte lauten "A1", "1", "A2", "2", "A3", "3", "A4", "4", "A5", "5", "0", "#NV"

Bei "A1" und "1" sollen die Zellen als Hintergrund die Farbe 3 (rot) bekommen.  Bei "A2" und "2"  die Farbe 38 (hell rot) usw.  

Da es mehr als 3 unterschiedliche Werte sind, kommt Bedingte Formatierung nicht in Frage. Ich habe es also mit VBA versucht und folgenden Code für das Arbeitsblatt verwendet:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngZelle As Range, strText As String, zell As Range

For Each zell In Worksheet
Select Case Target.Value
Case "A1"
Target.Interior.ColorIndex = 3
Case "1"
Target.Interior.ColorIndex = 3
Case "A2"
Target.Interior.ColorIndex = 38
Case "2"
Target.Interior.ColorIndex = 38
Case "A3"
Target.Interior.ColorIndex = 6
Case "3"
Target.Interior.ColorIndex = 6
Case "A4"
Target.Interior.ColorIndex = 43
Case "4"
Target.Interior.ColorIndex = 43
Case "A5"
Target.Interior.ColorIndex = 4
Case "5"
Target.Interior.ColorIndex = 4
Next
End Select
End Sub

Dieses Makro funktioniert allerdings nur wenn ich die Werte von Hand eingebe, nicht wenn sie von Formeln in die Zellen eingefügt werden. Ich habe mehrfach gelesen, dass man dazu statt Worksheet_Change das Ereignis Worksheet_Calculate benutzen soll. Aber ich weis einfach nicht wie ich dann den Rest des Codes umbauen muss...

Außerdem habe ich noch das Problem, dass sich nicht vermeiden lässt, dass manche Formeln die Fehlermeldung #NV ausgeben. Bei diesen Zellen würde ich gerne die Textfarbe Weiss machen, so dass man diese nicht mehr sieht. Aber mit dem Wert #NV scheint VBA auch nicht zurecht zu kommen...

Kann mir dabei jemand weiterhelfen. Ich bin für alle Vorschläge und Ideen äußerst dankbar...

LG,

Stefan

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Zellen über VBA formatieren aufgrund durch Formel eingetragener Werte
10.03.2013 17:14:36 Stefan
NotSolved
10.03.2013 19:08:35 Gast87662
NotSolved