In Makro Zellbereich durch def. Namen ersetzten
05.02.2016 19:01:42
US
zuerst einmal möchte ich Hallo in diesem Forum sagen. Habe in der Vergangenheit Beiträge immer wieder gelesen und mir Anregungen geholt, aber noch nie selbst einen verfasst. An dieser Stelle möchte ich erst mal all jenen DANKE sagen, die sich Zeit nehmen und sich die Mühe machen Antworten zu finden und Lösungen suchen.
Nun zu meinem Beitrag. Ich habe ein Problem beim anpassen von einem mit dem Makrorecorder aufgenommenen Makro. Mit Makrobefehlen kenne ich mich wenig aus.
Die Aufgabe ist mit einem per Makrorecorder aufgenommenen Makro eine Tabelle zu sortieren. (Funktioniert wunderbar)
Allerdings ist die Tabelle in ihrer Größe nicht konstant und ändert sich (Spalten und Zeilen kommen dazu). Ändert sich die Tabellengröße müssen im Makro dann immer auch die Bereiche überprüft und angepasst werden. Dies ist lästig und sollte "automatisch" gehen. Mein Gedanke ist "def. Namen" zu verwenden. Leider funktioniert das Makro nicht mehr, wenn ich die "Zellbereich" im Makro durch einen "def. Namen" ersetze.
Code der vom Recorder für "Sortieren" aufgenommen wurde.
ActiveWorkbook.Worksheets("Berechnung Umlageverbrauch").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Berechnung Umlageverbrauch").Sort.SortFields.Add _
Key:=Range("B8:B501"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Berechnung Umlageverbrauch").Sort
.SetRange Range("B8:B501")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Wenn ich die "fett" gekennzeichneten Bereichsangaben durch einen "def. Namen" ersetze kommt die Meldung Laufzeitfehler.
Kann mir jemand helfen das Makro so abzuändern, dass es mit "Namen" funktioniert.
Danke für Eure Hilfe
Gruß Uli