Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1828to1832
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

Zwei Spalten vergleichen

Zwei Spalten vergleichen
17.05.2021 22:46:08
Paddy
Hallo zusammen,
ich bin neu hier und auch in der VBA-Welt bin ich neu.
Für eine andere Tabelle habe ich ein Makro, wo übereinstimmende Werte zweier Reiter einer Excel in Spalte H gelb markiert werden.

Sub Vergleich()
Dim x As Integer, y As Integer
Dim lastrow1 As Integer, lastrow2 As Integer, original As String
lastrow1 = Worksheets("Tabelle1").Cells(Rows.Count, 8).End(xlUp).Row
lastrow2 = Worksheets("Tabelle2").Cells(Rows.Count, 8).End(xlUp).Row
For x = 2 To lastrow1
original = Cells(x, 8)
For y = 2 To lastrow2
If Cells(y, 8) = original Then Cells(y, 8).Interior.ColorIndex = 6
Next
Next
End Sub
Nun möchte ich es aber so umschreiben, dass die fehlenden Inhalte in Spalte H in "Tabelle2" gelb markiert werden.
Dies müsste also folgende Passage betreffen:

If Cells(y, 8) = original Then Cells(y, 8).Interior.ColorIndex = 6
Wie genau muss dieses Makro umgeschrieben werden, damit die fehlenden Werte in Tabelle2 gelb hervorgehoben werden?
Vielen dank für Eure Hilfe und liebe Grüße
Paddy

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

Betreff
Datum
Anwender
Anzeige
AW: Zwei Spalten vergleichen
17.05.2021 23:58:11
Yal
Hallo Paddy,
ich gehe davon aus, dass "die fehlende Inhalte in Spalte H in Tabelle2"
eher "die Werte aus der Tabelle1, die keine Treffer in Tabelle2 gefunden haben"
gemeint ist.
Es fehlt mir schwer, eine andere Sinne darin zu finden.
VBA-Knowledge-Boost: verwende die Excel-Objekte. In dem Fall die "Range" und "Cell" (Cell ist auch ein Range)
Mit "With" wird nur noch "ab dem Punkt" geschrieben. Es vermeidet Wiederholung.

Sub Vergleich()
Dim Tab1 As Range
Dim Tab2 As Range
Dim Z1 As Range
Dim Z2 As Range
Dim Gefunden As boolen
With Worksheets("Tabelle1")
Set Tab1 = .Range(.Range("G2"), .Cells(Rows.Count, 8).End(xlUp))
End With
With Worksheets("Tabelle2")
Set Tab2 = .Range(.Range("G2"), .Cells(Rows.Count, 8).End(xlUp))
End With
For Each Z1 In Tab1.Cells
Gefunden = False
For Each Z2 In Tab2.Cells
If Z1.Value = Z2.Value Then
Z2.Interior.ColorIndex = 6
Gefunden = True
End If
Next
If Not Gefunden Then Z1.Interior.ColorIndex = 6
Next
End Sub
VG
Yal
Anzeige
AW: Zwei Spalten vergleichen
18.05.2021 07:55:08
Paddy
Hallo Yal,
vielen Dank für deine Hilfe, es macht schon mal was, was es soll :-)
Und entschuldige die blöde Erklärung. Natürlich hast du Recht, dass die fehlende Werte, die in Tab2 nicht gefunden wurden, in Tab1 markiert werden sollen. Das funktioniert auch.
Allerdings werden alle Werte in Tab2 Spalte G+H gelb markiert. Ich kann leider den Grund dafür im Code nicht finden.
Kannst du helfen?
LG
Paddy
Ich auch nicht
18.05.2021 08:19:02
Yal
:-)
Hallo Paddy,
eigentlich ist diese Code-Schnippsel kein Hexenwerk und das Färben von Zelle mit nicht gleichen Werte sollte nicht sein.
Versuchen wir mit einer Ausgabe in der Direkt-Fenster, um das zu prüfen:

Sub Vergleich()
Dim Tab1 As Range
Dim Tab2 As Range
Dim Z1 As Range
Dim Z2 As Range
Dim Gefunden As boolen
With Worksheets("Tabelle1")
Set Tab1 = .Range(.Range("G2"), .Cells(Rows.Count, 8).End(xlUp))
End With
With Worksheets("Tabelle2")
Set Tab2 = .Range(.Range("G2"), .Cells(Rows.Count, 8).End(xlUp))
End With
For Each Z1 In Tab1.Cells
Gefunden = False
For Each Z2 In Tab2.Cells
Z2.Interior.Pattern = xlNone
If Z1.Value = Z2.Value Then
Debug.Print Z1.Address, Z1.Value, Z2.Address, Z2.Value, Z1.Value = Z2.Value
Z2.Interior.ColorIndex = 6
Gefunden = True
End If
Next
If Not Gefunden Then Z1.Interior.ColorIndex = 6
Next
End Sub

VG
Yal
Anzeige
AW: Ich auch nicht
18.05.2021 09:32:31
Paddy
Hallo Yal,
er färbt die Spalten G und H in Tab2 immer noch ein. Mir scheint es, als ob dies aufgrund identischer Werte zwischen Tab1 Spalte G/H und Tab2 Spalte G/H passiert.
LG
Paddy
AW: Ich auch nicht
18.05.2021 09:59:12
Paddy
Hallo Yal,
er färbt die Spalten G und H in Tab2 immer noch ein. Mir scheint es, als ob dies aufgrund identischer Werte zwischen Tab1 Spalte G/H und Tab2 Spalte G/H passiert.
LG
Paddy
so wär's richtig
18.05.2021 10:33:33
Yal
Hallo Paddy,
hier die korrigierte Version

Sub Vergleich()
Dim Tab1 As Range
Dim Tab2 As Range
Dim Z1 As Range
Dim Z2 As Range
Dim Gefunden As boolen
With Worksheets("Tabelle1")
Set Tab1 = .Range(.Range("H2"), .Cells(Rows.Count, 8).End(xlUp))
End With
With Worksheets("Tabelle2")
Set Tab2 = .Range(.Range("H2"), .Cells(Rows.Count, 8).End(xlUp))
End With
For Each Z1 In Tab1.Cells
Gefunden = False
For Each Z2 In Tab2.Cells
Z2.Interior.Pattern = xlNone
If Z1.Value = Z2.Value Then
Z2.Interior.ColorIndex = 6
Gefunden = True
End If
Next
If Not Gefunden Then Z1.Interior.ColorIndex = 6
Next
End Sub
VG
Yal
Anzeige
Ach so: Spalte 8 ist H! (7 ist G) oT
18.05.2021 10:23:26
Yal
AW: Ach so: Spalte 8 ist H! (7 ist G) oT
18.05.2021 10:33:27
Paddy
Hallo Yal,
stimmt, guten Morgen :-D
Die Spalte H in Tab2 wird aber weiterhin gefärbt, hab es jetzt aber hinbekommen, dass die Färbung nur in Tab1 passiert.
Danke für deine Hilfe.
LG
Paddy

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige