Sort-Methode, Laufzeitfehler 1004
06.04.2007 13:53:36
Frank
.
ich bastele bereits seit längerer Zeit an einer Vereins-Mitgliederverwaltung mit Excel 97. Die Datei ist bereits über viele Jahre entstanden und durch ständig neue Anforderungen gewachsen. Irgendwann kam auch der Schritt der Automatisierung uber VBA hinzu. Aus dem gesamten Datenbestand werden Altersstatistiken, Charts usw. erzeugt, sowie eine auf das Wesentliche reduzierte Liste für die Mitglieder. Bereits "fertige" Excel-Versionen mit VBA-Unterstützung decken naturgemäß nicht immer alle Anforderungen ab, so auch nicht in meinem Fall. Ein Datenbankprogramm scheidet aus Kostengründen und der damit verbundenen, erneuten Einarbeitungszeit schlicht und einfach aus. Für die doch relativ wenigen Daten reicht Excel voll aus.
.
Nun mein Problem
Folgendes Makro erzeugt den Laufzeitfehler 1004 "Die Sort-Methode des Range-Objektes ist fehlerhaft."
Leider komme ich einfach nicht auf den Kern dieser Aussage. Knackpunkt sind wohl (?) die Angaben zu Key1 und Key2. Die Foreneinträge hierzu bzw. die Excel-Beispiele haben mir leider auch nicht geholfen. Und die Excel-/VBA-Hilfe wird ihrem Namen auch nicht gerecht.
Ich gebe auch zu, dass sich mir die Variablen-Deklarationen nicht wirklich erschlossen haben.
Lauter Bretter ;-)
Sub sortieren(richtung)
' sortiert den Namen-Bereich "Datenbank" (= Range A4:FF205) in aufsteigender Reihenfolge
' nach Key1 Nachname und nach Key2 Vorname 04.04.07 F.T.
Dim rngKey1 As Range
Dim rngKey2 As Range
'On Error GoTo ende
Worksheets("Tabellenansicht").Unprotect
'Application.ScreenUpdating = False
'Application.Goto ActiveSheet.Range("Datenbank")
'Application.Goto Reference:="Datenbank"
'Range("Datenbank").Select
' Selection.Sort Key1:=Range("E4"), Order1:=richtung, Key2:=Range("C4") _
' , Order2:=richtung, Header:=xlYes, OrderCustom:=1, MatchCase:=False, _
' Orientation:=xlTopToBottom
Set rngKey1 = Worksheets("Tabellenansicht").Range("E5")
Set rngKey2 = Worksheets("Tabellenansicht").Range("C5")
Worksheets("Tabellenansicht").Range("Datenbank").Sort _
Key1:=rngKey1, Order1:=richtung, _
Key2:=rngKey2, Order2:=richtung, _
Header:=xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Worksheets("Tabellenansicht").Protect
Application.ScreenUpdating = True
ende:
Exit Sub
End Sub
Für die sachdienlichen Hinweise vorab meinen herzlichen Dank.Gruß & Dank
Frank