Name für Bereich -> Bereich ändern VBA
#1
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.
LG Herbert
Windows 10
Office 365
Antworten Top
#2
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.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#3
Hallo,

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

Danke!
LG Herbert
Windows 10
Office 365
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste