PDA

Vollständige Version anzeigen : VBA Code mehrfach zuweisen?


lekcin
27.06.2006, 17:43
Hallo,

ich sortiere in einer Tabelle die einzelnen Spalten via VBA, z.B. Spalte L:

Sub Sortieren()
ActiveSheet.Unprotect
Range("A3").Sort Key1:=Range("L3"), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
:=xlSortNormal
ActiveSheet.Protect
End Sub


Im Moment habe ich für jede Spalte ein Modul mit obigen Code angelegt, der Code wird via Button gestartet.

Ich frage mich nun, ob es nicht möglich ist, den obigen Code in nur einem
Modul anzulegen und ihn den verschiedenen pro Spalte Button zuzuweisen und trotzdem jede Spalte wie bisher individuell zu sortieren?

Hintergrund ist einfach folgender, dass mit zunehmender Anzahl der Module sich die Datei unnötig aufbläht.

Danke und Gruß

Paula :)

jinx
27.06.2006, 17:55
<font size="2" face="Century Gothic">Moin, Paula,

durch die Übergabe der Spalte als Parameter:

Option Explicit

Sub Sortieren(strSpalte As String)
ActiveSheet.Unprotect
Range("A3").Sort Key1:=Cells(3, strSpalte), Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _
:=xlSortNormal
ActiveSheet.Protect
End Sub
<hr>
Sub PaulaL()
Sortieren "L"
End Sub
<hr>
Sub PaulaG()
Sortieren "G"
End Sub</font>

lekcin
27.06.2006, 18:09
Hallo Jinx,

wenn ich den Code in ein Modul einfüge,
kommt die Fehlermeldung "Anweisungsende erwartet".

Markiert wird "Key 3".

Danke und Gruß

Paula :)

jinx
27.06.2006, 18:13
<font size="2" face="Century Gothic">Moin, Paula,

ich kann nur das sehen, was ich hier im Forum vor mir sehe - und da steht nichts von Key3 (würde auch zusammengehören ohne Leerzeichen)... :rolleyes:</font>

lekcin
27.06.2006, 18:32
Sorry, markiert wird Key1.

Der Button ist im übrigen eine "Schaltfläche" - falls das wichtig ist.

Sub Sortieren(strSpalte As String)
ActiveSheet.Unprotect Range("A3").Sort Key1:=Cells(3, strSpalte),
Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _ False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2 _ :=xlSortNormal ActiveSheet.Protect End Sub Sub PaulaL() Sortieren "L" End Sub Sub PaulaG() Sortieren "G" End Sub


Danke und Gruß

Paula :)

jinx
27.06.2006, 18:42
<font size="2" face="Century Gothic">Moin, Paula,

ich sehe da kein Problem - siehe Beispielmappe.</font>

lekcin
27.06.2006, 18:54
... funktioniert einwandfrei ...

Herzlichen Dank!

Grüße Paula :)