Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Farbe ändern aufgrund If Bedingung

Forumthread: Farbe ändern aufgrund If Bedingung

Farbe ändern aufgrund If Bedingung
03.11.2003 13:09:37
Maggus
Hallo zusammen,

ich stehe irgendwie auf dem Schlauch und benötige etwas Rat. Bisher habe ich ein Makro das mir aus zwei Tabellenblattern einen Nr. Abgleich fährt und dann bei übereinstimmung (xlPart) eine andere Nummer kopiert.

Mein Problem: Die Nr. über die der Abgleich läuft sind nicht immer exakt gleich z.B. soll 23758 = 23758* sein, doch 23758** sollte nicht ohne weiteres akzeptiert werden. Daher möchte ich eine IF Bedingung einbauen, sobald in dem gefundenen Wert zwei oder mehr * auftauchen soll er mir die neue Zeile farbig markieren, und da tappe ich im dunkel. Wie kann ich das realisieren.

Gruß
Markus

Sheets(1).Activate
lastrow = Cells(Rows.Count, 1).End(xlUp).Row

For i = 1 To lastrow
Wert = Cells(i, 1).Value
With Sheets(2).Columns(3)
Set C = .Find(Wert, LookIn:=xlValues, LookAt:=xlPart)
If Not C Is Nothing Then
MyCell = "00000" + C(1, -1)

Cells(i, 4) = MyCell
End If
End With
Next i
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Farbe ändern aufgrund If Bedingung
03.11.2003 14:04:42
Mac4
Hi,

so kannst Du bspw. für die Zelle A1 abfragen, ob sich im Text mehr als 2 * befinden, wenn ja, wird die Zelle rot gefärbt:


Sub test()
If Len([A1]) - Len(Application.WorksheetFunction.Substitute([A1], "*", "")) >= 2 Then
[A1].Interior.ColorIndex = 3
End If
End Sub


Marc
Anzeige
AW: Farbe ändern aufgrund If Bedingung
03.11.2003 15:06:29
Maggus
Hallo Marc,

vielen Dank ich habe es jetzt für die ganze reihe übernommen.


Sub Nr_übertragen()
' Nr_übertragen() Makro
Sheets(1).Activate
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lastrow
Wert = Cells(i, 1).Value
With Sheets(2).Columns(3)
Set C = .Find(Wert, LookIn:=xlValues, LookAt:=xlPart)
If Not C Is Nothing Then
MyCell = "00000" + C(1, -1) 'sorgt für die Vornullen
If Len(C) - Len(Application.WorksheetFunction.Substitute([C], "*", "")) >= 2 Then
Rows(i).Interior.ColorIndex = 3
MsgBox "Es wurde eine Nr doppelt gefunden und rot markiert."
End If
Cells(i, 4) = MyCell
End If
End With
Next i
End Sub

Anzeige
;
Anzeige

Infobox / Tutorial

Farbe ändern aufgrund von If-Bedingungen in Excel


Schritt-für-Schritt-Anleitung

Um die Farbe von Zellen in Excel basierend auf einer If-Bedingung zu ändern, kannst du das folgende VBA-Makro verwenden. Dieses Beispiel zeigt, wie du Zellen rot färben kannst, wenn der Text mehr als zwei Sterne (*) enthält:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke im Menü auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code in das Modul ein:
Sub FarbeAendern()
    Dim lastrow As Long
    Dim i As Long
    Sheets(1).Activate
    lastrow = Cells(Rows.Count, 1).End(xlUp).Row

    For i = 1 To lastrow
        If Len(Cells(i, 1).Value) - Len(Application.WorksheetFunction.Substitute(Cells(i, 1).Value, "*", "")) >= 2 Then
            Cells(i, 1).Interior.ColorIndex = 3 ' Rot
        End If
    Next i
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Führe das Makro aus, indem du ALT + F8 drückst und das Makro FarbeAendern auswählst.

Häufige Fehler und Lösungen

  • Fehler: "Objekt erforderlich"

    • Lösung: Stelle sicher, dass du die richtige Zellreferenz verwendest und dass die Zelle tatsächlich Werte enthält.
  • Fehler: Zelle wird nicht gefärbt

    • Lösung: Überprüfe, ob der Text in der Zelle wirklich mehr als zwei Sterne enthält. Achte auch darauf, dass das Makro auf die richtige Zelle oder den richtigen Bereich angewendet wird.

Alternative Methoden

Eine weitere Möglichkeit, die Farbe basierend auf einer If-Bedingung zu ändern, ist die bedingte Formatierung in Excel:

  1. Markiere den gewünschten Zellbereich.
  2. Gehe zu Start > Bedingte Formatierung > Neue Regel.
  3. Wähle Formel zur Ermittlung der zu formatierenden Zellen verwenden.
  4. Gib folgende Formel ein:
    =LEN(A1)-LEN(SUBSTITUTE(A1,"*",""))>=2
  5. Klicke auf Formatieren und wähle die gewünschte Füllfarbe (z.B. Rot).
  6. Bestätige mit OK.

Praktische Beispiele

Angenommen, du hast in Spalte A verschiedene Werte und möchtest die Zellen rot einfärben, wenn sie mehr als zwei Sterne enthalten.

  1. Beispielwert in Zelle A1: 23758**
  2. Die resultierende Zelle A1 wird rot gefärbt, wenn das Makro oder die bedingte Formatierung angewendet wird.

Du kannst diese Methode auch anpassen, um andere Bedingungen zu überprüfen und die Formatierung entsprechend zu ändern.


Tipps für Profis

  • Nutze Variablen, um deine Makros flexibler zu gestalten. Zum Beispiel kannst du die Anzahl der Sterne als Eingabeparameter definieren.
  • Dokumentiere deine Makros mit Kommentaren, damit du sie später leichter verstehen kannst.
  • Experimentiere mit verschiedenen ColorIndex Werten, um eine Vielzahl von Farben zu verwenden.

FAQ: Häufige Fragen

1. Wie kann ich die Farbe einer Zelle in Excel ändern, wenn eine andere Bedingung erfüllt ist? Du kannst die If-Bedingung im VBA-Code oder in der bedingten Formatierung anpassen, um andere Kriterien festzulegen.

2. Funktioniert das auch in Excel 365? Ja, die beschriebenen Methoden funktionieren in allen aktuellen Excel-Versionen, einschließlich Excel 365.

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