VBA optimieren
07.06.2020 13:32:59
Richi
Habe hier einen Code den ich als Laie nicht verstehe. Weiss zwar, dass dieser Mehrfachzeilen sucht, löscht und Einträge in Spalten überschreibt.
Mit den Ausdrücken FormulaR1C1 = "=RC[-11]&RC[-3]" komm ich nicht zurecht (soviel ich weiss werden diese bei der Aufzeichnung eines Makros verwendet).
Kann mir da jemand helfen, diesen Code zu entflechten d.h. vereinfacht zu schreiben?
Wäre sehr froh darüber.
Liebe Gruess
Richi
---------------------------------------------
Sub Mehrfach()
Dim loLetzte As Long
Application.ScreenUpdating = False
With Worksheets("Single Line")
loLetzte = .Cells(.Rows.Count, "A").End(xlUp).Row
.Range(.Cells(2, "M"), .Cells(loLetzte, "M")).FormulaR1C1 = "=RC[-11]&RC[-3]"
.Range(.Cells(2, "M"), .Cells(loLetzte, "M")).Value = .Range(.Cells(2, "M"), .Cells( _
loLetzte, "M")).Value
.Range(.Cells(2, "N"), .Cells(loLetzte, "N")).FormulaR1C1 = _
"=IF(COUNTIF(C[-1],RC[-1])>1,""Mehrfach"","""")"
.Range(.Cells(2, "N"), .Cells(loLetzte, "N")).Value = .Range(.Cells(2, "N"), .Cells( _
loLetzte, "N")).Value
If WorksheetFunction.CountIf(.Columns("N"), "Mehrfach") > 0 Then
.Range("$A$1:$N$" & loLetzte).RemoveDuplicates Columns:=Array(1, 10), Header:=xlYes
.Range("A1").CurrentRegion.AutoFilter , field:=14, Criteria1:=""
With .AutoFilter.Range
.Offset(1).Resize(.Rows.Count - 1).Columns("G") = 8000
.Offset(1).Resize(.Rows.Count - 1).Columns("H") = "Mehrfach"
.Offset(1).Resize(.Rows.Count - 1).Columns("I") = 8
End With
If .AutoFilterMode = True Then .AutoFilterMode = False
.Columns("M:N").ClearContents
Else
.Columns("M:N").ClearContents
End If
End With
End Sub