Ich versuche mich an diesem kleinen Code, und bis aufs sortieren klappt es ganz gut.
Das Calculate am Schluss ist drin, da ich es jetzt so gelöst habe dass in einer Spalte das Ergebnis kommt, und die Sortieren Formel dann in einer anderen Spalte dies übernimmt. Diesen Zwischenschritt würde ich gerne weglassen.
Bestimmt könnt ihr mir helfen, Danke im voraus.
Sub Eindeutige_Daten()
Dim rng As Range
Dim InputRng As Range, OutRng As Range
Set dt = CreateObject("Scripting.Dictionary")
xTitleId = "Eindeutige Daten"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
For Each rng In InputRng
If rng.Value "" Then
dt(rng.Value) = ""
End If
Next
OutRng.Range("A1").Resize(dt.Count) = Application.WorksheetFunction.Transpose(dt.Keys)
'** Zelladresse in Spalten- und Zeilenangabe trennen
Dim wert() As String
wert = Split(OutRng.Address, "$")
letztezeile = ActiveSheet.Cells(1048576, wert(1)).End(xlUp).Row
With ActiveWorksheet.Sort
.SetRange Range(OutRng & ":" & wert(1) & letztezeile)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Calculate
End Sub