Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1472to1476
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

In Makro Zellbereich durch def. Namen ersetzten

In Makro Zellbereich durch def. Namen ersetzten
05.02.2016 19:01:42
US
Hallo Excelfreunde,
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

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: In Makro Zellbereich durch def. Namen ersetzten
05.02.2016 19:17:03
Daniel
Hi
das Problem ist, dass du darauf achten musst, dass alles auf dem selben Tabellenblatt passiert.
an den fett markierten Stellen gibst du aber kein Tabellenblatt an und dann muss Excel eins einsetzen.
in der Regel ist das das gerade aktive Tabellenblatt (wenn der Code in einem allgemeinen Modul steht).
verwendest du in der Range keine Adresse sondern den definierten Namen, so bezieht sich die Range auf das Tabellenblatt des Namens.
wenn du also über den Namensmanager einen Zellbereich definiert hast (bzw mit dem Namen "xxx") dann sollte der Code so aussehen:
Range("xxx").Worksheet.Sort.SortFields.Clear
Range("xxx").Worksheet.Sort.SortFields.Add _
Key:=Range("xxx"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With Range("xxx").Worksheet.Sort
.SetRange Range("xxx")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
gruß Daniel

Anzeige
AW: In Makro Zellbereich durch def. Namen ersetzten
05.02.2016 21:10:51
US
Hallo Daniel,
vielen Dank für die schnelle Antwort.
Habs ausprobiert. Funktioniert wunderbar.
Ganz einfach wenn man weiß auf was es drauf ankommt.
Ist mir eine sehr große Hilfe.
Nochmals vielen viele Dank
Gruß Uli

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige