AW: Sortieren eines Zellenabschnittes
18.11.2005 18:06:54
Frank
Hallo Martin,
vielleicht habe ich in Zeitnor etwas übersehen. Hier noch einmal die beiden Module.
' --- Start des Klassenmodul der Tabelle "Calc Pareto" ---
Option Explicit
' Wichtig, Prozedure NUR im Klassenmodul der Tabelle "Calc Pareto" einfügen!
' (Im Projektexplorer unter Microsoft Excel Objekte die entsprechende Tabelle
' doppelt anklicken und dann dieses Modul inkl. Kommentare dort hinein kopieren)
' Falls Du diese Prozedure in anderen Modulen hast, bitte dort löschen!
Private Sub Worksheet_Calculate()
Dim ws As Worksheet
' Zur Sicherheit Tabellennamen prüfen
If ActiveSheet.Name <> "Calc Pareto" Then Exit Sub
Set ws = Worksheet("Calc Pareto")
ws.Range("A1:M26").Sort Key1:=ws.Range("A1"), _
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub
' --- Ende des Klassenmodul der Tabelle "Calc Pareto" ---
' --- Start des Klassenmodul der "Diese Arbeitsmappe" ---
Option Explicit
' Wichtig, Prozedure NUR im Klassenmodul der Tabelle "Diese Arbeitsmappe" einfügen!
' (Im Projektexplorer unter Microsoft Excel Objekte "Diese Arbeitsmappe"
' doppelt anklicken und dann dieses Modul inkl. Kommentare dort hinein kopieren)
' Falls Du diese Prozedure in anderen Modulen hast, bitte dort löschen!
Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh Is Nothing Then Exit Sub
If Sh.Name = "Calc Pareto" Then
' Hier könntest Du noch testen, ob die Änderungen den Bereich betreffen!
Sh.Range("A1:M26").Sort Key1:=Sh.Range("A1"), _
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End If
End Sub
' --- Ende des Klassenmodul der "Diese Arbeitsmappe" ---
Ich hoffe, jetzt alles berücksichtig zu haben.
Viele Erfolg
Frank.