Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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