Makro läuft vom Modul aus, aber nicht im Worksheet

12/09/2007 - 14:55 von Philipp Failenschmid | Report spam
Hallo zusammen,

ich habe ein Frage zu der Funktionsweise des Makros das ich
geschreiben (und teilweise aufgenommen ;)) habe. Es soll einen Bereich
im Sheet 4 markieren und diesen dann absteigend nach der Zweiten
Spalte im Bereich ordnen.

Das Makro làuft problemlos vom Modul aus, wenn ich es aber in ein
Worksheet kopiere und dort starten will, spuckt es mir immer einen
Fehler bei der Sort Funktion aus (Application or Object defined
Error). Hintergrund ist, dass ich es gerne bei einem Button
hinterlegen würde, der sich im Sheet4 befinden soll.

Ich bin ein Anfànger was VBA angeht und habe noch Probleme die
Zusammenhànge zu erkennen.

Ich würd mich sehr freuen, wenn sich jemand kurz die Zeit nimmt und
die folgenden Fragen kurz beantworten könnte bzw. jemand eine Idee
hat wie ich es eleganter lösen könnte.

Was ist der Grund dafür, dass es im Sheet nicht làuft und wie müsste
ich die Sort Funktion umschreiben?

Vielen Dank im Voraus.

Viele Grüße
Philipp


Sub sort()
Set aw4 = Application.Worksheets("sheet4")

aw4.Activate
aw4.Columns("H:H").Select
Application.Selection.Find(What:="Underlyings", After:=ActiveCell,
LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows,
SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Select

aw4.Range(Selection, Selection.End(xlToRight)).Select
aw4.Range(Selection, Selection.End(xlDown)).Select

Selection.sort Key1:=Range("I2"), Order1:=xlDescending,
Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

End Sub
 

Lesen sie die antworten

#1 Eberhard Funke
12/09/2007 - 18:59 | Warnen spam
Am Wed, 12 Sep 2007 05:55:37 -0700 schrieb Philipp Failenschmid:

Hallo Philipp,

Makro...
... soll einen Bereich
im Sheet 4 markieren und diesen dann absteigend nach der Zweiten
Spalte im Bereich ordnen.

Das Makro làuft problemlos vom Modul aus, wenn ich es aber in ein
Worksheet kopiere und dort starten will, spuckt es mir immer einen
Fehler bei der Sort Funktion aus (Application or Object defined
Error).



Das kann ich nicht nachstellen.
Bei meiner Version làuft das Makro nur mit den unten angegebenen
Änderungen; dann aber sowohl in dem dem sheet4 zugeordneten Modul als auch
in einem nicht zugeordneten Standardmodul.
Allgemein werden die einem Sheet zugeordneten Module für Ereignisprozeduren
benutzt (z. B. SelectionChange), die nicht zugeordneten Standardmodule für
"normale" Prozeduren, wie Dein Makro eine ist.

Hintergrund ist, dass ich es gerne bei einem Button
hinterlegen würde, der sich im Sheet4 befinden soll.



Unter Menü Ansicht --> Symbolleisten --> Formular --> sieht Du in der
Auswahl u. a. die Schaltflàche angezeigt. Klick darauf --> der Cursor
verwandelt sich in ein "+", mit dem Du eine Schaltflàche auf dem
Tabellenblatt aufziehen kannst. Danach öffnet sich gleich das Fenster
"Makro zuweisen", in dem Du Dein Makro anklickst.


Sub sort()
Set aw4 = Application.Worksheets("sheet4")

aw4.Activate
aw4.Columns("H:H").Select
Application.Selection.Find(What:="Underlyings", After:=ActiveCell,
LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows,
SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Select



SearchFormat:=False --> löschen

aw4.Range(Selection, Selection.End(xlToRight)).Select
aw4.Range(Selection, Selection.End(xlDown)).Select

Selection.sort Key1:=Range("I2"), Order1:=xlDescending,
Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal



DataOption1:=xlSortNormal --> löschen


Mit freundlichen Grüssen Eberhard
XP home XL 2000
Eberhard(punkt)W(punkt)Funke(at)t-online.de

Ähnliche fragen