Supportnet / Forum / Tabellenkalkulation
Fehler beim Sortieren
Frage
Ich möchte meine Tabelle sortieren.
Tabelle => A6:AF2005
Es soll nach Reihe B6 aufsteigend sortiert werden.
Ich hab mir den folgenden Code ein bisschen zusammengebastelt, da ich von VB nicht alzu viel Ahnung habe.
Sub sortieren()
If Target.Address = "$AI$4" Then
If Target = "X" Then
Range("A6:AF2005").Sort Key1:=Range("B6"),
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End If
End If
End Sub
Es kommt 'Laufzeitfehler 424' in der dritten Zeile bei 'If Target = "X" Then'.
Würde mich über eine Antwort freuen.
Vielen Dank schonmal.
Grüße Daniel
Antwort 1 von nighty
hi daniel :-)
wie es auf den ersten blick scheint muss der schluessel in der ersten spalte der sortierenden daten liegen :-(
war mir bisher gar nicht aufgefallen hihi
gruss nighty
ein beispiel
Sub sortieren()
If ActiveCell.Address = "$C$1" And UCase(ActiveCell) = "X" Then
Worksheets(1).Range("A6:AF2005").Sort Key1:=Worksheets(1).Range("A1"), Order1:=xlAscending, Header:=xlGuess, orderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End If
End Sub
wie es auf den ersten blick scheint muss der schluessel in der ersten spalte der sortierenden daten liegen :-(
war mir bisher gar nicht aufgefallen hihi
gruss nighty
ein beispiel
Sub sortieren()
If ActiveCell.Address = "$C$1" And UCase(ActiveCell) = "X" Then
Worksheets(1).Range("A6:AF2005").Sort Key1:=Worksheets(1).Range("A1"), Order1:=xlAscending, Header:=xlGuess, orderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End If
End Sub
Antwort 2 von nighty
hi daniel
dein target stammt uebrigens aus einer ereignisprocedur dessen uebergabevariable :-)
gruss nighty
dein target stammt uebrigens aus einer ereignisprocedur dessen uebergabevariable :-)
gruss nighty
Antwort 3 von nighty
hi daniel :-)
als automatismus(ereignisprocedur) waere es dann so :-)
gruss nighty
einzufuegen
alt+f11/projektexplorer/DeineTabelle
als automatismus(ereignisprocedur) waere es dann so :-)
gruss nighty
einzufuegen
alt+f11/projektexplorer/DeineTabelle
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$C$1" And UCase(Range(Target.Address)) = "X" Then
Worksheets(1).Range("A6:AF2005").Sort Key1:=Worksheets(1).Range("A1"), Order1:=xlAscending, Header:=xlGuess, orderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End If
Application.EnableEvents = True
End SubAntwort 4 von Daniel_Berlin
Vielen Dank für deine Antworten nighty.
Mitlerweile habe ich einfach ein Makro aufgezeichnet und mit diesen Code gearbeitet. Jetzt funktioniert alles!!!
Gruß Daniel
Mitlerweile habe ich einfach ein Makro aufgezeichnet und mit diesen Code gearbeitet. Jetzt funktioniert alles!!!
Gruß Daniel

