Hi...
das würde dann so aussehen..
Private Sub Worksheet_Change(ByVal Target As Range)
Cells.Select
ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear
ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("E7:E1048576" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.ActiveSheet.Sort
.SetRange Range("E7:XFD1048576")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Allerdings muss ich dazu sagen, dass das nicht wirklich praktisch ist. Denn hier wird wirklich nach jeder Eingabe sortiert... besser wäre es irgendwo einen commandbutton einzufügen und den code dort hinein zukopieren. wenn alle eingaben gemacht sind auf den button klicken und gut...
Edit: Nochmal hi...
oder du machst es so... dann MUSS aber nach der Eingabe in Spalte E unbedingt ENTER gedrückt werden, sonst funktioniert das nicht...
Private Sub Worksheet_Change(ByVal Target As Range)
If ActiveCell.Column=6 And ActiveCell.Row>6 Then
Dim myname
myname = ActiveCell.Value
Range("E7:E1048576").Select
ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear
ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("E7:E1048576" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.ActiveSheet.Sort
.SetRange Range("E7:XFD1048576")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("E7:E1048576").Find(What:=myname, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Select
End If
End Sub
hier wird jetzt nur sortiert, wenn in spalte E ab zeile 7 Änderungen vorgenommen.... aber wie gesagt... funktioniert nur mit ENTER
__________________
Der Klügere gibt nach... deshalb regieren die Dummen die Welt
|