Herbers Excel-Forum - das Archiv

Sortierfunktion in Modul auslagern VBA

Bild

Betrifft: Sortierfunktion in Modul auslagern VBA
von: Jens

Geschrieben am: 15.12.2006 15:47:32
Hallo,
beim Verlassen eines Tabellenblattes wird ja die Ereignisfunktion "Worksheet_Deactivate" des plattes aufgerufen. Zur Zeit steht da eine Sortierfunktion drin, die auch funktioniert:
' Tabelle sortieren
Range("E12:J250").Sort Key1:=Range("E12"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Nun möchte ich die Funktion aber in ein Modul auslagern nach dem Motto
Sub SortiereTabMitarbeiter(ByVal oRng As Worksheet)
' Tabelle sortieren
Range("E12:J250").Sort ...
End Sub
Und in dem Tabellenblatt soll dann nur noch der Aufruf drin sein:
Private Sub Worksheet_Deactivate()
' Tabellenblatt sortieren
' Call SortiereTabMitarbeiter(Me)
End Sub

Aber ich muss dem Modul natürlich einen Parameterübergeben, damit er weiß um welches Tabelenblatt es sich handelt. Wie baue ich diese Parameterübergabe ein?
OK ist zwar eine "primitive Frage" aber ich bin erst am Anfang ...
Gruß - Jens
Bild

Betrifft: AW: Sortierfunktion in Modul auslagern VBA
von: Matthias G

Geschrieben am: 15.12.2006 16:25:43
Hallo Jens,
du hast es doch schon fast:
Sub SortiereTabMitarbeiter(ByVal Sh As Worksheet)
With Sh
.Range("E12:J250").Sort Key1:=.Range("E12"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End With
End Wub

Gruß Matthias
Bild

Betrifft: AW: Sortierfunktion in Modul auslagern VBA
von: Jens
Geschrieben am: 15.12.2006 17:42:51
OK, danke Matthias!
Aber wie rufe ich dann die Funktion auf von
Private Sub Worksheet_Deactivate()
' Tabellenblatt sortieren
Call SortiereTabMitarbeiter(Me)
End Sub

???
Das "Me" als Parameer ist sicherlich falsch ...
Gruß - Jens
Bild

Betrifft: AW: Sortierfunktion in Modul auslagern VBA
von: Matthias G
Geschrieben am: 15.12.2006 18:15:18
Hallo Jens,
im Tabellenmodul ist Me genau richtig, da es auf das entsprechende Tabellenblatt verweist. Wenn es nicht funktioniert, lass im Modul mal das ByVal weg.
Gruß Matthias
Bild

Betrifft: AW: Sortierfunktion in Modul auslagern VBA
von: Jens
Geschrieben am: 16.12.2006 08:49:01
Danke, Matthias!
Es funktioniert. Und jetzt werde ich erst einmal ein VBA Buch lesen ;)
Gruß - Jens
 Bild
Excel-Beispiele zum Thema "Sortierfunktion in Modul auslagern VBA"
Auf- und absteigend sortieren ohne Sortierfunktion