AW: VBA Duplikate ersetzen
09.08.2019 10:28:58
fcs
Hallo Benji,
eine Möglichkeit wäre folgende:
Sub Finde_Doppelte_und_hole_Werte()
Dim wks As Worksheet
Dim rngFind As Range, varFind As Variant
Dim Zeile As Long, Zeile_L As Long, varZeile As Variant
Dim SpaMark As Long
Set wks = ActiveSheet
SpaMark = 4 'Spalte D - spalte in der doppelte markiert werden - ggf. anpassen
With wks
'letzte Zeile mit Inhalt in Spalte C
Zeile_L = .Cells(.Rows.Count, 3).End(xlUp).Row
'Zeilen Spalte C ab Zeile 2 abarbeiten
For Zeile = 2 To Zeile_L - 1
'als doppelt markierte Zeile überspringen
If .Cells(Zeile, SpaMark).Value "doppelt" Then
'Wert in Spalte C merken
varFind = .Cells(Zeile, 3).Value
'Suchbereich in Spalte C ab Zeile unterhalb bis Listenende setzen
Set rngFind = .Range(.Cells(Zeile + 1, 3), .Cells(Zeile_L, 3))
'Zeile mit Wert im Suchbereich suchen
varZeile = Application.Match(varFind, rngFind, 0)
If IsNumeric(varZeile) Then
'Wert aus gefundener Zeile in Spalte B eintragen
.Cells(Zeile, 2) = .Cells(Zeile + varZeile, 2).Value
'Zeile mit doppeltem Wert markieren
.Cells(Zeile + varZeile, SpaMark).Value = "doppelt"
End If
End If
Next
End With
End Sub
LG
Franz