Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Zeilen färben wenn Zelle Wert

VBA Zeilen färben wenn Zelle Wert
04.12.2020 08:48:15
David
Hallo zusammen
Ich versuche mittels VBA Zeilen zu formatieren wenn in der Spalte 4 ein gewisser Wert steht. Dabei handelt es sich immer entweder um "S" oder "MSTR". Beim zweiten Link sieht man wie ich es mir vorgestellt hätte. Mir ist bewusst das man das ganze mittels Formatierung erreichen kann allerdings soll es sich hier um eine erweiterung eines bestehenden Excel Tools handeln.
https://www.herber.de/bbs/user/142048.xlsx vorhandene liste
https://www.herber.de/bbs/user/142049.png gewünschtes Ergebnis
Gruss und danke schonmal
David
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zeilen färben wenn Zelle Wert
04.12.2020 09:11:01
worti
Hallo David,
in das Modul für die entsprechende Tabelle folgenden Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 And Target.Column = 4 Then
If Target.Value = "MSTR" Then
Range(Cells(Target.Row, 1), Cells(Target.Row, 4)).Interior.ColorIndex = 48
Else
If Target.Value = "S" Then
Range(Cells(Target.Row, 1), Cells(Target.Row, 4)).Interior.ColorIndex = 15
End If
End If
End If
End Sub

Gruß Worti
Anzeige
AW: VBA Zeilen färben wenn Zelle Wert
04.12.2020 09:23:13
David
Salut
Vielen Dank schonmal für die Antwort. Leider gibt er mir an "objekt erforderlich". https://www.herber.de/bbs/user/142054.png
Sorry ich bin wirklich totaler Anfänger und vermutlich wärs ganz einfach.
Gruss David
AW: VBA Zeilen färben wenn Zelle Wert
04.12.2020 11:27:38
worti
Hallo David,
du hast die Prozedur ja auch nicht in das Modul der entsprechenden Tabelle gepackt.
Wenn du es einfach so laufen lassen möchtest, dann so
Sub einfaerben()
Dim lngZeile As Long
For lngZeile = 1 To Cells(Rows.Count, 4).End(xlUp).Row
If Cells(lngZeile, 4).Value = "MSTR" Then
Range(Cells(lngZeile, 1), Cells(lngZeile, 4)).Interior.ColorIndex = 48
Else
If Cells(lngZeile, 4).Value = "S" Then
Range(Cells(lngZeile, 1), Cells(lngZeile, 4)).Interior.ColorIndex = 15
End If
End If
Next lngZeile
End Sub

Gruß Worti
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zeilen in Excel mit VBA einfärben basierend auf Zellwerten


Schritt-für-Schritt-Anleitung

Um Zeilen in Excel abhängig von einem bestimmten Zellwert zu färben, kannst du VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne die Excel-Datei, in der du die Zeilen färben möchtest.

  2. Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  3. Suche die entsprechende Tabelle im Projekt-Explorer auf der linken Seite.

  4. Füge den folgenden Code in das Modul der Tabelle ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Count = 1 And Target.Column = 4 Then
           If Target.Value = "MSTR" Then
               Range(Cells(Target.Row, 1), Cells(Target.Row, 4)).Interior.ColorIndex = 48
           ElseIf Target.Value = "S" Then
               Range(Cells(Target.Row, 1), Cells(Target.Row, 4)).Interior.ColorIndex = 15
           End If
       End If
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Teste die Funktion, indem du in der Spalte 4 einen der Werte ("MSTR" oder "S") eingibst.


Häufige Fehler und Lösungen

  • Fehler: "Objekt erforderlich"

    • Ursache: Der Code wurde nicht im richtigen Modul eingefügt.
    • Lösung: Stelle sicher, dass du den Code in das Modul der spezifischen Tabelle einfügst, nicht in ein allgemeines Modul.
  • Fehler: Die Zeilen färben nicht

    • Ursache: Die Werte in der Spalte 4 stimmen nicht mit den im Code angegebenen Werten überein.
    • Lösung: Überprüfe die Eingaben und stelle sicher, dass sie exakt "MSTR" oder "S" sind.

Alternative Methoden

Wenn du keine VBA-Lösungen verwenden möchtest, kannst du auch die bedingte Formatierung in Excel nutzen:

  1. Markiere die Zellen, die du formatieren möchtest.
  2. Gehe zu Start > Bedingte Formatierung > Neue Regel.
  3. Wähle Formel zur Ermittlung der zu formatierenden Zellen verwenden.
  4. Gib eine Formel wie =($D1="MSTR") ein, um die Zeile zu färben, wenn der Wert "MSTR" in Spalte 4 steht.
  5. Wähle die gewünschte Formatierung aus und klicke auf OK.

Praktische Beispiele

Hier ist ein Beispiel für den VBA-Code, um die gesamte Zeile zu färben, wenn in Spalte 4 "MSTR" oder "S" steht:

Sub einfaerben()
    Dim lngZeile As Long
    For lngZeile = 1 To Cells(Rows.Count, 4).End(xlUp).Row
        If Cells(lngZeile, 4).Value = "MSTR" Then
            Range(Cells(lngZeile, 1), Cells(lngZeile, 4)).Interior.ColorIndex = 48
        ElseIf Cells(lngZeile, 4).Value = "S" Then
            Range(Cells(lngZeile, 1), Cells(lngZeile, 4)).Interior.ColorIndex = 15
        End If
    Next lngZeile
End Sub

Dieser Code durchläuft alle Zeilen und färbt die Zellen in den ersten vier Spalten entsprechend dem Wert in Spalte 4.


Tipps für Profis

  • Verwende benannte Bereiche, um den Code flexibler zu gestalten.
  • Teste den Code in einer Kopie deiner Datei, um Datenverluste zu vermeiden.
  • Nutze Fehlerbehandlungsroutinen, um den Code robuster zu machen.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Bedingungen in VBA einfügen?
Du kannst zusätzliche If-Anweisungen hinzufügen, um verschiedene Werte in der Spalte zu überprüfen und verschiedene Farbzuweisungen vorzunehmen.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der VBA-Code sollte in den meisten Excel-Versionen, die VBA unterstützen, funktionieren. Achte darauf, dass Makros aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige