Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1968to1972
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wenn Wert aus Blatt1 nicht in Blatt 2 dann Zellfarbe = Gelb

Wenn Wert aus Blatt1 nicht in Blatt 2 dann Zellfarbe = Gelb
14.03.2024 22:16:06
MiVidaLoca
Ich lade neue Daten in eine exceldatei.
bevor ich das Blatt ("Data") mit den neuen Daten fülle, mache ich von "Data" eine Kopie ("Data zum Import") um später bestimmte Werte aus "Data zum Import" nach "Data" zurück zu schreiben.
Dabei möchte prüfen, ob in Data nun Zeilen sind, die aber in "Data zum Import" nicht vorkommen
Hierzu möchte ich die Spalte C mitinander vergleichen, da in dieser eine eindeutige Nummer steht.
Sind welche in "Data" neu vorhanden die nicht in "Data zum Import" vorkommen, dann stelle die Hintergrundfarbe von der Jeweiligen Zeile in C auf gelb.

Das habe ich bisher, ist aber Murks und ich komme gerade nicht dahinter wo der Fehler liegt.
Die Prüfung bei C1 ist richtig, da bereits vorhanden.
Sobald i auf 2, somit C2, ist If = True, aber er steigt dann ohne Meldung hier aus ".Interior.ColorIndex = 15"

Dim MeinBereich As Range, AndererBereich As Range

'Dim LetzteZeile
'Dim i
Sheets("Data").Select

LetzteZeile = LastRow(Sheets("Data"))
i = 0
Set MeinBereich = Range("C2:C" & LetzteZeile)
Set AndererBereich = Worksheets("data zum import").Range("$C:$C")

With Worksheets("Data")
For i = 1 To LetzteZeile
If WorksheetFunction.CountIf(AndererBereich, Range("C" & i)) = 0 Then
.Interior.ColorIndex = 15

Else

End If
Next
End With

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn Wert aus Blatt1 nicht in Blatt 2 dann Zellfarbe = Gelb
14.03.2024 22:25:46
Oberschlumpf
Sorry, aber nur ein bisschen Code-Schnipsel zu zeigen ist auch Murks.

Zeig mal bitte per Upload eine Bsp-Datei mit 'alten' Bsp-Daten im Blatt "Data zum Import" und 'neuen' Bsp-Daten im Blatt "Data".
In "Data" sollten natürlich Daten enthalten sein, die es in "Data zum Import" nicht gibt.
AW: Wenn Wert aus Blatt1 nicht in Blatt 2 dann Zellfarbe = Gelb
14.03.2024 23:10:44
MiVidaLoca
Manchmal hilft es auch lediglich einen Stupser zu erhalten, und schon erkennst du den Fehler.
Danke Oberschlumpf.

Läuft (zumindest für mein Vorhaben ;-)):

Dim MeinBereich As Range, AndererBereich As Range

'Dim LetzteZeile - habe ich bereits vorher anderweitig festglegt
'Dim i - habe ich bereits vorher anderweitig festglegt
LetzteZeile = LastRow(Sheets("Data"))
i = 0
Set MeinBereich = Range("C2:C" & LetzteZeile)
Set AndererBereich = Worksheets("data zum import").Range("$C:$C")

For i = 2 To LetzteZeile
With Worksheets("Data")
If WorksheetFunction.CountIf(AndererBereich, Range("C" & i)) = 0 Then
.Range("C" & i).Interior.Color = RGB(255, 255, 0)
Else

End If
End With
Next
Anzeige
AW: Wenn Wert aus Blatt1 nicht in Blatt 2 dann Zellfarbe = Gelb
15.03.2024 00:24:09
MiVidaLoca
Und noch einen Fehler entdeckt, nicht = sondern >

:
Dim MeinBereich As Range, AndererBereich As Range

'Dim LetzteZeile - habe ich bereits vorher anderweitig festglegt
'Dim i - habe ich bereits vorher anderweitig festglegt
i = 0
LetzteZeile = LastRow(Sheets("Data"))
Set MeinBereich = Range("C2:C" & LetzteZeile)
Set AndererBereich = Worksheets("data zum import").Range("$C:$C")

For i = 2 To LetzteZeile
With Worksheets("Data")
If WorksheetFunction.CountIf(AndererBereich, Range("C" & i)) > 0 Then
.Range("C" & i).Interior.Color = RGB(255, 255, 0)
Else

End If
End With
Next
Anzeige
AW: Wenn Wert aus Blatt1 nicht in Blatt 2 dann Zellfarbe = Gelb
14.03.2024 22:53:07
Yal
Hallo Mi (man spricht sich im forum per Vorname an ;-)

der stabile Klassiker: die Variante mit doppelter For-Schleife:
Sub VergleichenUndFärben()

Dim D As Long
Dim I As Long
Dim wD As Worksheet
Dim wI As Worksheet

Set wI = Worksheets("data zum import")
Set wD = Worksheets("Data")
For I = 2 To wI.Cells(Rows.Count, "C").End(xlUp).Row
For D = 1 To wD.Cells(Rows.Count, "C").End(xlUp).Row
If wI.Cells(I, "C").Value = wD.Cells(D, "C").Value Then wD.Cells(D, "C").Interior.ColorIndex = 15
Next
Next
End Sub


die Objekt-Variante davon:
Sub VergleichenUndFärben()

Dim D As Range
Dim I As Range

With Worksheets("data zum import")
For Each I In Range(.Range("C2"), .Cells(Rows.Count, "C").End(xlUp))
With Worksheets("Data")
For Each D In Range(.Range("C2"), .Cells(Rows.Count, "C").End(xlUp))
If I.Value = D.Value Then D.Interior.ColorIndex = 15
Next
End With
Next
End With
End Sub


eine Version mit CountIf:
Sub VergleichenUndFärben()

Dim cellD As Range
Dim rgI As Range

With Worksheets("data zum import")
Set rgI = Intersect(.Columns(3), .UsedRange)
End With
With Worksheets("Data")
For Each cellD In Range(.[C2], .Cells(Rows.Count, "C").End(xlUp))
If WorksheetFunction.CountIf(rgI, cellD) Then cellD.Interior.ColorIndex = 15
Next
End With
End Sub


und eine Version mit Dictionary (schon, aber irgendwie zu heavy):
Sub VergleichenUndFärben()

Dim Dic As Object
Dim Z As Range 'Z wie Zelle

Set Dic = CreateObject("Scripting.Dictionary")
With Worksheets("data zum import")
For Each Z In Intersect(.Columns(3), .UsedRange)
Dic(Z.Value) = 1
Next
End With
With Worksheets("Data")
For Each Z In Range(.[C2], .Cells(Rows.Count, "C").End(xlUp))
If Dic.Exists(Z.Value) Then Z.Interior.ColorIndex = 15
Next
End With
Set Dic = Nothing
End Sub


VG
Yal

Anzeige
aber eigentlich...
14.03.2024 22:55:03
Yal
... würde ich nicht mal färben, sondern mit Power Query das Ergebnis direkt liefern.

VG
Yal
AW: Wenn Wert aus Blatt1 nicht in Blatt 2 dann Zellfarbe = Gelb
15.03.2024 00:33:54
MiVidaLoca
Habe alle 4 getestet und sie funktionieren auf Anhieb! Cool.
AW: aber eigentlich...
14.03.2024 23:15:24
MiVidaLoca
Beeindruckende Umsetzung(en).

Habe aber, für meine Verhältnisse meinen Fehler gesehen, korrigiert und läuft.
:-)

Besten Dank an dich und auch Oberschlumpf.
AW: aber eigentlich...
14.03.2024 23:24:10
MiVidaLoca
Und das mit dem Vornamen habe ich eben erst gelesen.... :-)))))))))))))))))))))

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige