Anzeige
Archiv - Navigation
1684to1688
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 gleicher Wert dann verschieben

Wenn gleicher Wert dann verschieben
11.04.2019 10:55:41
Simon
Hallo zusammen,
ich habe folgenden Code:
Option Explicit
Sub Werte_Vergleichen()
Dim SourceRange As Range, SourceCell As Range, CompareRange As Range, CompareCell As Range, i  _
As Integer
Set SourceRange = Range("B2:B60")
Set CompareRange = Range("C2:C60")
For Each SourceCell In SourceRange
For Each CompareCell In CompareRange
If SourceCell = CompareCell And CompareCell.Value  "" Then
CompareCell.Interior.ColorIndex = 10
Else
SourceCell = SourceCell.Offset(i, 0)
CompareCell = CompareCell.Offset(i, 0)
End If
Next
Next
End Sub
Der macht nichts anderes zu schauen ob ein Wert aus Spalte B mit irgendeinem Wert aus Spalte C übereinstimmt und färbt diesen.
Was mir jetzt noch fehlt ist, dass wenn der Wert übereinstimmt, das die Zellen mit den selben Werten nebeneinander stehen. Heißt wenn Wert aus C6 = mit Wert aus B2 dann soll C6 jetzt an der selben stelle wie B2 stehen.
Das soll in der selben Datei, als auch Tabelle geschehen.
Ich kenne die Funktion .cut und .PasteSpecial, aber kenne mich damit nicht aus. Kann einer von euch mir vlt. helfen?
Danke im Voraus
Simon Klein

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn gleicher Wert dann verschieben
11.04.2019 13:08:31
Daniel
Hallo Simon,
zunächst mal - was soll das
SourceCell = SourceCell.Offset(i, 0)
CompareCell = CompareCell.Offset(i, 0)
Ergibt keinen Sinn und es passiert eh nichts, da i nirgends befüllt wird und somit 0 ist.
Zum Verschieben der gefundenen Übereinstimmung, versuch's mal so:
If SourceCell = CompareCell And CompareCell.Value  "" Then
CompareCell.Interior.ColorIndex = 10
CompareCell.Cut
Cells(SourceCell.Row, CompareCell.Column).Insert xlShiftDown
End If
Gruß
Daniel
AW: Wenn gleicher Wert dann verschieben
11.04.2019 14:21:59
Simon
Danke für die Antwort, an der Stelle war ich auch schon, nur dann verschiebt er manche Werte richtig und manche sind um mehrere Reihen versetzt. Die Antwort von Rudi hat das Problem gelöst.
VG
Simon
Anzeige
AW: Wenn gleicher Wert dann verschieben
11.04.2019 13:18:44
Rudi
Hallo,
Sub Werte_Vergleichen()
Dim SourceRange As Range, CompareRange As Range
Dim lngRow As Long
Dim vntMatch, vntTMP
Set SourceRange = Range("B2:B60")
Set CompareRange = Range("C2:C60")
Application.ScreenUpdating = False
For lngRow = 1 To SourceRange.Rows.Count
vntMatch = Application.Match(SourceRange.Cells(lngRow), CompareRange, 0)
If Not IsError(vntMatch) Then
vntTMP = CompareRange.Cells(lngRow)
CompareRange.Cells(lngRow) = CompareRange.Cells(vntMatch)
CompareRange.Cells(vntMatch) = vntTMP
End If
Next
End Sub

Gruß
Rudi
AW: Wenn gleicher Wert dann verschieben
11.04.2019 14:19:36
Simon
Super Vielen Dank!!! Wie bekomme ich es jetzt, dass wenn es kein Match gibt, alles rot markiert wird?
VG
Simon
Anzeige
AW: Wenn gleicher Wert dann verschieben
11.04.2019 14:32:51
Simon
Okay habs selbst gelöst. :D Nochmals vielen Dank
wenn gelöst, dann nicht offen. o.w.T.
11.04.2019 14:37:17
Werner

335 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige