Clever-Excel-Forum

Normale Version: Name für Bereich -> Bereich ändern VBA
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe in  einer Exceldatei für Bereiche Namen vergeben, die ich in VBA Code verwende.
Wie kann ich den Bereich für einen Namen anpassen auf die letzte benutzte Zelle in einer Spalte.
zB
Name = MeinBereich
Bezieht sich auf = 'Blatt1'!$C$9:$C$100

Ich möchte jetzt den Bereich auf  = 'Blatt1'!$C$9:$C$ und letzte Zelle in Spalte C ändern

Danke!

Hallo nochmal,

ich glaube ich habe es selbst gelöst.

Code:
letzteZeile = ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row

ActiveWorkbook.Names("MeinBereich").RefersTo = _
    "='Blatt1'!$C$9:$C$" & letzteZeile

Falls jemand einen besseren Vorschlag hat, bitte gerne.
Hi,

da brauchst du kein VBA - zumindest wenn du keine leeren Zelle im Bereich hast. Es reicht

= 'Blatt1'!$C$9:INDEX('Blatt1'!$C:$C;ANZAHL2('Blatt1'!$C:$C)+9-ANZAHL2('Blatt1'!$C$1:$C$9))

Falls sich die Anzahl2 der Zellen oberhalb von C9 nicht ändert, kann man auch 9-ANZAHL2('Blatt1'!$C$1:$C$9) einmalig ausrechen und dies als festen Wert eintragen.
Falls alle Zellen oberhalb belegt sind, kann man auf den Ausdruck ganz verzichten.

Der Vorteil dieser Formel: es muss niemals etwas geändert werden. Der Bereich stimmt immer automatisch, ohne dass ein Makro verwendet werden muss. Bei deiner Makrolösung wird es problematisch falls in Zeile 1:9 eine Zeile eingefügt oder gelöscht wird.

Noch besser ist es natürlich, eine Strg-T-Tabelle zu verwenden. In VBA greift man dann auf das entsprechende ListObject zu.
Hallo,

danke für den Hinweis und Lösungsvorschlag.
Das werde ich auch probieren.

Danke!