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 einfärben, wenn Inhalt vorhanden (VBA)
#1
Hallo,
ich würde gerne über VBA die Farbe von Zellen festlegen. Ich möchte keine Bedingten Formatierungen verwenden.

Dabei soll in einem bestimmten Bereich die Farbe der Zelle von Standard (Weißer Hintergrund) zur festgelegten Farbe (Rot) vorgenommen werden, wenn irgendetwas in die Zelle geschrieben wird (Zahl oder Text).

Habe versucht in Spalte B von Zeile 7 bis 21 die Zellfarbe auf Rot zu ändern, falls irgendetwas drin steht.

Mein Code bisher:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'Zellfarbe

If Target.Column = 2 And Target.Row > 6 And Target.Row < 21 Then
If Target.Value <> "" Then Target.Interior.ColorIndex = vbRed
End If

End Sub


Leider ohne Erfolg, könnt Ihr mir sagen wo mein Fehler liegt?


Danke & Gruß
Antworten Top
#2
Hi,

wieso willst du eine Standardfunktion in XL nicht nutzen und stattdessen diese mit VBA nachbauen?
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#3
Weil der Bereich oft händisch von Nutzern verschoben wird, dabei wird auch der Bereich verschoben/geändert für den die Bedingte Formatierung eigentlich relevant ist.

Also wenn ich die Bedingte Formatierung für B7:B21 festlege und ein Nutzer dann B15 verschiebt, dann ändert sich auch der Bereich für die Bedingte Formatierung, was aber nicht sein sollte.


Der Bereich soll deshalb mittels eines VBA Codes festgelegt werden, den der Nutzer nicht so einfach per "Drag & Drop" verschieben kann.
Antworten Top
#4
Hab das jetzt so gelöst:

Code:
Private Sub Worksheet_Calculate()
If Worksheets("Tabelle1").Cells(7, 2) <> "" Then
  Worksheets("Tabelle1").Cells(7, 2).Interior.ColorIndex = 4
Else
  Worksheets("Tabelle1").Cells(7, 2).Interior.ColorIndex = 2
End If
End Sub

Das ist der Code für eine Zeile. Nun muss ich den Bereich B7:B21 so einfärben. Kann man den Code anpassen, so dass ich nicht für jede Zeile diesen Code wiederholen muss?
Antworten Top
#5
Nochmal umgesattelt:

Code:
Private Sub Worksheet_Calculate()
'Bedingte Formatierungen
Dim Zelle As Range, Bereich As Range
Set Bereich = Range("B7:B21")
For Each Zelle In Bereich
Select Case Zelle.Value
  Case "":
     Zelle.Interior.Color = RGB(191, 191, 191)
  Case Is <> "":
     Zelle.Interior.Color = RGB(252, 213, 180)
     End Select
Next Zelle
End Sub
Antworten Top


Gehe zu:


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