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

Forumthread: Zellinhalt mit Liste vergleichen

Zellinhalt mit Liste vergleichen
16.05.2018 21:34:41
Felix
Halli Hallo liebe Excel Freunde,
ich habe inzwischen viele Beiträge hier im Forum gelesen und auch in anderen Foren. Vielleicht ist es heute einfach zu spät und ich sehe den Wald vor lauter Bäumen nicht mehr.
Ich versuche mal mein Problem zu schildern. Als Beispiel habe ich eine Beispieldatei hochgeladen.
https://www.herber.de/bbs/user/121660.xlsm
Meine Tabelle besteht aus 2 Tabellenblättern.
1. Laufzeiten
2. Werte
In der 2. Tabelle (Werte) stehen im Bereich A3:A101 verschiedene Werte.
Wenn jetzt ein User auf dem 1. Tabellenblatt (Laufzeiten) unter den beiden bereits existierenden Werten einen neuen Wert schreibt, soll dieser in einem Worksheet_Change Event gleich prüfen, ob dieser Wert auf der 2. Tabelle (Wert) im Bereich A3:A101 vorkommt. Wenn ja, dann soll nichts passieren, wenn jedoch nicht, dann soll sich die Zelle mit "Target.Interior.ColorIndex = 3" rot färben.
Da die 1. Tabelle immer fortlaufend beschrieben wird, ohne dass Werte gelöscht werden, soll die Prüfung bei jedem neuen Wert erfolgen.
Das testweise einzelne färben einer Zelle habe ich hinbekommen, jedoch nicht diesen Vergleich.
Könnt Ihr mir auf die Sprünge helfen? Es ist gut möglich, dass ich mich heute einfach zu doof anstelle.
Vielen vielen Dank im Voraus.
LG
Felix
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellinhalt mit Liste vergleichen
16.05.2018 21:38:51
Felix
Ach so ich hatte vergessen zu erwähnen, dass ich viele ähnliche Beiträge gelesen habe. Aus denen bin ich heute jedoch nicht wirklich schlau geworden.
Daher bitte ich um Entschuldigung, falls es zu einem Doppelposting gekommen ist.
LG
Felix
AW: Zellinhalt mit Liste vergleichen
16.05.2018 22:07:50
Werner
Hallo Felix,
warum nicht mit der bedingten Formatierung?
Blatt "Laufzeiten" Spalte A markieren - Start - bedingte Formatierung - Neue Regel - Formel zur Ermittlung der zu formatierenden Zellen verwenden und folgende formel ins Formelfenster:
=UND(ZÄHLENWENN(Werte!A:A;A1)=0;A1<>"")
-Formatieren - Ausfüllen - Farbe wählen - ok
Deine Datei konnte ich mir nicht ansehen, kann hier im Moment keine .xlsm herunterladen.
Gruß Werner
Anzeige
AW: Zellinhalt mit Liste vergleichen
16.05.2018 22:18:16
Felix
Hallo Werner,
vielen Dank erstmal für deinen Vorschlag.
Die Originaldatei enthält inzwischen schon Daten in über 5000 Zeilen, würde die bedingte Formatierung diese nicht verlangsamen? So kenne ich es jedenfalls von großen Dateien mit Formeln.
Daher hatte ich diesen Weg erstmal abgewählt.
Es soll auch immer nur die aktuelle Zelle auf den Inhalt überprüft werden. Wenn ein Fehler besteht soll dieser gleich vom User behoben werden. Dann brauchen nämlich vorherige Daten nicht mehr kontrolliert werden.
LG
Felix
Anzeige
AW: Zellinhalt mit Liste vergleichen
16.05.2018 22:40:07
Werner
Hallo Felix,
was hälst du davon es einfach mal auszuprobieren?
Gruß Werner
AW: Zellinhalt mit Liste vergleichen
16.05.2018 23:53:48
Werner
Hallo Felix,
und wenns denn unbedingt per VBA sein soll:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
If Target.Count = 1 Then
If Not Target Is Nothing Then
If WorksheetFunction.CountIf(Worksheets("Werte").Range("A3:A101"), Target.Value) =  _
0 Then
Target.Interior.ColorIndex = 3
Else
Target.Interior.ColorIndex = xlNone
End If
End If
End If
End If
End Sub
Gruß Werner
Anzeige
Hinweis
16.05.2018 23:54:53
Werner
Hallo Felix,
den Zeilenumbruch im Code bitte wieder raus nehemn, wurde von der Forensoftware eingefügt.
Gruß Werner
AW: Hinweis
17.05.2018 06:31:50
Felix
Guten Morgen Werner,
Vielen Dank für deine Lösungen und den Code.
Ich werde mich heute mal ran setzen und auch beides ausprobieren um es zu vergleichen :-).
Danach werde ich dir berichten.
Vielen Dank vorab für deine Mühe.
LG
Felix
Anzeige
AW: Hinweis
18.05.2018 19:22:16
Felix
Hallo Werner,
gestern habe ich auf Arbeit beide Versuche vorgestellt. Mit VBA und mit Formel. Habe beides in zwei verschiedene Beispieltabellen kopiert und hat auch beides super funktioniert.
Vielen Dank für deine Hilfe Werner, die war Gold wert!
LG
Felix
Gerne u.Danke für die Rückmeldung. o.w.T.
18.05.2018 19:37:00
Werner
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zellinhalt mit Liste vergleichen in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne Deine Excel-Datei mit den zwei Tabellenblättern: "Laufzeiten" und "Werte".

  2. Markiere das erste Tabellenblatt ("Laufzeiten") und klicke auf die Zelle, in der der neue Wert eingetragen wird.

  3. Öffne den VBA-Editor: Drücke ALT + F11.

  4. Füge den folgenden VBA-Code ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Column = 1 Then
           If Target.Count = 1 Then
               If Not Target Is Nothing Then
                   If WorksheetFunction.CountIf(Worksheets("Werte").Range("A3:A101"), Target.Value) = 0 Then
                       Target.Interior.ColorIndex = 3
                   Else
                       Target.Interior.ColorIndex = xlNone
                   End If
               End If
           End If
       End If
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Teste die Funktion, indem Du einen neuen Wert in das "Laufzeiten"-Blatt eingibst. Wenn der Wert nicht in der Liste auf dem "Werte"-Blatt vorhanden ist, färbt sich die Zelle rot.


Häufige Fehler und Lösungen

  • Zelle färbt sich nicht rot: Überprüfe, ob der VBA-Code korrekt eingefügt wurde und die Zellen im richtigen Bereich liegen.
  • Fehlermeldung beim Ausführen des Codes: Stelle sicher, dass Makros in Deinen Excel-Optionen aktiviert sind.
  • Keine Reaktion beim Ändern des Zellinhalts: Vergewissere Dich, dass Du die richtige Spalte (in diesem Fall Spalte A) bearbeitest.

Alternative Methoden

  1. Bedingte Formatierung:

    • Wähle die Zellen in Spalte A aus und gehe zu „Start“ > „Bedingte Formatierung“ > „Neue Regel“.
    • Wähle „Formel zur Ermittlung der zu formatierenden Zellen verwenden“ und gib die folgende Formel ein:
    =UND(ZÄHLENWENN(Werte!A:A;A1)=0;A1<>"")
    • Wähle die gewünschte Füllfarbe aus und klicke auf „OK“.
  2. Excel Formel zum Vergleichen von Zellinhalten:

    • Du kannst auch die WENN-Funktion verwenden, um den Zellinhalt zu vergleichen:
    =WENN(ZÄHLENWENN(Werte!A3:A101;A1)=0;"Nicht vorhanden";"Vorhanden")

Praktische Beispiele

  • Beispiel 1: Du hast in der Spalte A des "Laufzeiten"-Blatts die Werte 1, 2, 3. In der Spalte A des "Werte"-Blatts sind die Werte 2 und 3. Wenn Du nun 1 in das "Laufzeiten"-Blatt eingibst, wird die Zelle rot gefärbt, da 1 nicht in der Liste vorkommt.

  • Beispiel 2: Wenn Du die Werte „Apfel“, „Banane“ und „Kirsche“ hast und „Banane“ in der Liste „Werte“ vorhanden ist, wird die Zelle nicht gefärbt, wenn Du „Banane“ in "Laufzeiten" eingibst.


Tipps für Profis

  • Verwende benannte Bereiche: Wenn Du oft mit verschiedenen Listen arbeitest, erstelle benannte Bereiche für eine einfachere Verwaltung.
  • Performance optimieren: Bei großen Datenmengen kann die bedingte Formatierung die Performance beeinträchtigen. Ziehe in solchen Fällen die VBA-Lösung vor.
  • Variiere die Farben: Ändere die ColorIndex-Eigenschaft im VBA-Code, um verschiedene Warnfarben für unterschiedliche Fehler zu nutzen.

FAQ: Häufige Fragen

1. Kann ich mehrere Zellen gleichzeitig prüfen? Ja, Du kannst den Code anpassen, um mehrere Zellen gleichzeitig zu prüfen, indem Du Target.Count entsprechend änderst.

2. Verlangsamt die bedingte Formatierung die Datei? Ja, bei großen Datenmengen kann die bedingte Formatierung die Leistung beeinträchtigen. In solchen Fällen ist die Verwendung von VBA empfehlenswert.

3. Funktioniert das auch in Excel Online? VBA funktioniert nicht in Excel Online. Du musst die Desktop-Version verwenden, um den Code auszuführen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige