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

Forumthread: Zeilen vergleichen wenn Wert in Spalte gleich

Zeilen vergleichen wenn Wert in Spalte gleich
07.08.2024 12:40:39
Klaus Putterlik
Hallo Kollegen,
ich steh auf dem Schlauch und benötige Hilfe.
Ich habe eine Liste, in der Zeilen miteinander verglichen werden sollen.
Wenn in Spalte K ein gleicher Wert gefunden wird, z.B. K8 und K7 (die zu prüfenden Zeilen stehen immer direkt untereinander), dann soll in der oberen Zeile, hier also in Zeile 7, alle Zellen von A:Q mit einer Änderung grün markiert werden.
Anbei ein Beispiel:
UserbildUserbild

Ganz am Schluss sollen dann alle "grauen" Zeilen gelöscht werden.

Bitte helft mir. Danke schon im voraus.

Gruß Klaus
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen vergleichen wenn Wert in Spalte gleich
07.08.2024 12:48:34
Onur
Excel ist keine Bildbearbeitung - also Excel-Datei statt Bilder posten.
AW: Zeilen vergleichen wenn Wert in Spalte gleich
07.08.2024 14:20:47
GerdL
Moin Klaus,
Sub Unit()


Dim C As Range, rngDel As Range

For Each C In Range("A7:O7").Cells
If C.Value > "" Then
If C.Value = C.Offset(1, 0).Value Then
C.Interior.Color = vbGreen
If Not rngDel Is Nothing Then
Set rngDel = C.Offset(1, 0).EntireRow
Else
Set rngDel = Union(rngDel, C.Offset(1, 0).EntireRow)
End If
End If
End If
Next
If Not rngDel Is Nothing Then
rngDel.Delete
Set rngDel = Nothing
End If

End Sub


teste mal.

Gruß Gerd
Anzeige
AW: Zeilen vergleichen wenn Wert in Spalte gleich
07.08.2024 16:02:33
GerdL
Dein Code mit Schleifen.

Sub Compare_II()


Dim j As Long, k As Long, m As Long


Application.DisplayAlerts = False

For j = Cells(Rows.Count, 11).End(xlUp).Row To 2 Step -1
If Cells(j, 11).Value = Cells(j - 1, 11).Value Then
For k = 1 To 10
If Cells(j, k).Value > Cells(j - 1, k).Value Then
Cells(j - 1, k).Interior.Color = 65280
End If
Next k
For m = 12 To 17
If Cells(j, m).Value > Cells(j - 1, m).Value Then
Cells(j - 1, m).Interior.Color = 65280
End If
Next m
End If
Next j

Range("A1").Select
Application.DisplayAlerts = True


End Sub


Gruß Gerd
Anzeige
AW: Zeilen vergleichen wenn Wert in Spalte gleich
08.08.2024 08:11:25
Klaus
Hallo Gerd, Daniel,
vielen Dank für schnellen Vorschläge.
Dieses Forum ist einfach super.
Gruß Klaus
AW: Zeilen vergleichen wenn Wert in Spalte gleich
07.08.2024 17:46:20
daniel
Hi
mal ein unkonventioneller Ansatz.
Sub test()

Dim Z As Range, S As Range
With ActiveSheet.UsedRange
With .Columns(.Columns.Count + 1)
.Offset(1, 0).Resize(.Rows.Count - 1, 1).FormulaR1C1 = "=If(RC11=R[-1]C11,""x"",Row())"
.Cells(1, 1).Value = "x"
If WorksheetFunction.CountIf(.Cells, "x") > 1 Then
For Each Z In .Cells.SpecialCells(xlCellTypeFormulas, 2)
For Each S In Intersect(Z.Offset(-1, 0).EntireRow, Range("A:Q"))
If S.Value > S.Offset(1, 0).Value Then S.Interior.Color = vbGreen
Next
Next
.EntireRow.RemoveDuplicates .Column, xlNo
End If
.ClearContents
End With
End With
End Sub
Anzeige
AW: Zeilen vergleichen wenn Wert in Spalte gleich
07.08.2024 14:49:55
Klaus
Hallo Gerd,

danke schon mal, aber funktioniert nicht ganz so.
in dieser Zeile "Set rngDel = Union(rngDel, C.Offset(1, 0).EntireRow)" bringt er "invalid procedure"
Außerdem markiert er die Zelle in Spalte A obwohl diese gleich mit der darunter ist.

Ich hab es mittlerweile auf umständliche Weise hinbekommen

Sub Compare()


Application.DisplayAlerts = False

Dim j As Long
Dim lastrow As Integer

lastrow = Cells(Rows.Count, 11).End(xlUp).Row

For j = lastrow To 2 Step -1
If Cells(j, 11).Value = Cells(j - 1, 11).Value Then
If Cells(j, 1).Value > Cells(j - 1, 1).Value Then
Cells(j - 1, 1).Interior.Color = 65280
End If
If Cells(j, 2).Value > Cells(j - 1, 2).Value Then
Cells(j - 1, 2).Interior.Color = 65280
End If
If Cells(j, 3).Value > Cells(j - 1, 3).Value Then
Cells(j - 1, 3).Interior.Color = 65280
End If
If Cells(j, 4).Value > Cells(j - 1, 4).Value Then
Cells(j - 1, 4).Interior.Color = 65280
End If
If Cells(j, 5).Value > Cells(j - 1, 5).Value Then
Cells(j - 1, 5).Interior.Color = 65280
End If
If Cells(j, 6).Value > Cells(j - 1, 6).Value Then
Cells(j - 1, 6).Interior.Color = 65280
End If
If Cells(j, 7).Value > Cells(j - 1, 7).Value Then
Cells(j - 1, 7).Interior.Color = 65280
End If
If Cells(j, 8).Value > Cells(j - 1, 8).Value Then
Cells(j - 1, 8).Interior.Color = 65280
End If
If Cells(j, 9).Value > Cells(j - 1, 9).Value Then
Cells(j - 1, 9).Interior.Color = 65280
End If
If Cells(j, 10).Value > Cells(j - 1, 10).Value Then
Cells(j - 1, 10).Interior.Color = 65280
End If
If Cells(j, 12).Value > Cells(j - 1, 12).Value Then
Cells(j - 1, 12).Interior.Color = 65280
End If
If Cells(j, 13).Value > Cells(j - 1, 13).Value Then
Cells(j - 1, 13).Interior.Color = 65280
End If
If Cells(j, 14).Value > Cells(j - 1, 14).Value Then
Cells(j - 1, 14).Interior.Color = 65280
End If
If Cells(j, 15).Value > Cells(j - 1, 15).Value Then
Cells(j - 1, 15).Interior.Color = 65280
End If
If Cells(j, 16).Value > Cells(j - 1, 16).Value Then
Cells(j - 1, 16).Interior.Color = 65280
End If
If Cells(j, 17).Value > Cells(j - 1, 17).Value Then
Cells(j - 1, 17).Interior.Color = 65280
End If
End If
Next j

Range("A1").Select

Application.DisplayAlerts = True


End Sub



Sub DeleteGrey()


Application.DisplayAlerts = False

Dim j As Long
Dim lastrow As Integer

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

For j = lastrow To 2 Step -1
If Cells(j, 11).Interior.Color = 11382189 Then
Rows(j).Delete
End If
Next j

Range("A1").Select

Application.DisplayAlerts = True


End Sub


da gibt es bestimmt elegantere Lösungen, aber es funktioniert.

Für elegantere Lösungen bin ich jederzeit offen.

Gruß Klaus
Anzeige
AW: so wie von Dir beschrieben, gehts nur mit VBA, aber ...
07.08.2024 13:01:22
neopa C
Hallo Klaus,

... mit VBA beschäftige ich mich nicht, ist mE hier auch nicht notwendig.
Wenn Du die Zeile 7 aber nicht löschst sondern z.B. nur ausblendest kann man die "Einfärbung" einfach mit bed. Formatierung vornehmen.

Gruß Werner
.. , - ...
AW: so wie von Dir beschrieben, gehts nur mit VBA, aber ...
07.08.2024 13:20:06
Klaus
Hallo,
dies ist nur ein Teil des Ganzen. Vorher und nachher passieren noch einige Dinge mit der Tabelle, deshalb geht es nur mit VBA. Das Makro ist bereits so gut wie erledigt, mir fehlt nur diese angefragte Sequenz.
Die Tabellen variieren immer so zwischen 1000 - 5000 Zeilen, da wäre ein Automatismus schon gut ;-)

Vielen Dank
Gruß Klaus
Anzeige
AW: VBA-Lösung gesucht, thread offen owT
07.08.2024 13:43:41
neopa C
Gruß Werner
.. , - ...
AW: VBA-Lösung gesucht, thread offen owT
07.08.2024 13:45:34
Onur
Aber bestimmt nicht auf Basis eines Bildchens.... :)
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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