Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bereichsnamen mit VBA ändern

Forumthread: Bereichsnamen mit VBA ändern

Bereichsnamen mit VBA ändern
29.03.2022 12:28:14
Florian
Hi Leute,
ich versuche mit folgendem Code einen Bereichsnamen zu ändern. Allerdings wird der Name nicht geändert, sondern ich habe dann auf der gleichen Zelle den alten und neuen Namen im Namensmanager.

Sub PersonalkostenUmbenennen()
Dim wksStammdaten As Worksheet
Set wksStammdaten = ActiveWorkbook.Sheets("Stammdaten")
wksStammdaten.Range("Personalkosten").Name = "Personalaufwand"
End Sub
Userbild
Wenn ich es dann so versuche den alten Namen zu löschen erhalten ich auf der "Delete-Zeile" einen Fehler 1004, wie wenn er den Namen nicht findet.

Sub PersonalkostenUmbenennen()
Dim wksStammdaten As Worksheet
Set wksStammdaten = ActiveWorkbook.Sheets("Stammdaten")
wksStammdaten.Range("Personalkosten").Name = "Personalaufwand"
wksStammdaten.Names("Personalkosten").Delete
End Sub
Weiss jemand Rat?
Danke Euch!! :)
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bereichsnamen mit VBA ändern
29.03.2022 12:39:03
MCO
Hallo Florian!
Wenn du den Bereich umbenennst, dann existiert der alte Name nicht mehr. Da gibt´s nix mehr zu löschen.
Anderer Weg
Geh von der anderen Seite ran u. lass dir die Namen auflisten und benenne sie direkt um.

Sub Name_change()
For Each nm In ActiveWorkbook.Names
Debug.Print nm, nm.Name
nm.Name = "Günther"
Next nm
End Sub
Gruß, MCO
Anzeige
AW: Bereichsnamen mit VBA ändern
29.03.2022 13:46:24
Florian
Dachte ich auch, aber wieso steht der alte Name dann noch im Namensmanager neben dem neuen?
Mit Deinem Code würde ich dann alle Namen ändern, oder? Ich will aber nur diesen einen "Personalkosten" ändern.
AW: Bereichsnamen mit VBA ändern
30.03.2022 06:53:18
MCO
Da baust du dann halt eine IF-Bedingung ein:
if Name ="Gerd" then Name = "Günther"
Gruß, MCO
Anzeige
AW: Bereichsnamen mit VBA ändern
29.03.2022 12:39:49
ChrisL
Hi Florian
So wie du es definiert hast, bezieht sich der Name auf die ganze Arbeitsmappe.

ThisWorkbook.Names("Personalkosten").Name = "Personalaufwand"
cu
Chris
AW: Bereichsnamen mit VBA ändern
29.03.2022 13:47:45
Florian
Was meinst Du mit gesamte Arbeitsmappe?
Da ich den Code in einem Addin speichere muss ich mit ActivEworkbook arbeiten, da er nur in der aktiven Arbeitsmappe laufen soll, in der ich auf den BUtton drücke.
Oder habe ich einen Denkfehler?
Anzeige
AW: Bereichsnamen mit VBA ändern
29.03.2022 14:01:40
ChrisL
Hi
Ich meine diese Einstellung:
Userbild
War nur die Erklärung, warum du auf die Mappe und nicht auf das Tabellenblatt referenzieren solltest.
cu
Chris
AW: Bereichsnamen mit VBA ändern
29.03.2022 13:45:06
UweD
HAllo
Es reicht : ActiveWorkbook.Names("Personalkosten").Name = "Personalaufwand"
ohne die Blattangabe
LG UweD
Anzeige
AW: Bereichsnamen mit VBA ändern
29.03.2022 13:48:42
Florian
Aber wieso sehe ich nach der Änderung den alten und neuen im Namensmanager? Der alte müsste doch dann weg sein, oder nicht
AW: Bereichsnamen mit VBA ändern
29.03.2022 13:56:52
Daniel
Achte auf den Unterschied:
Damit legst du einen neuen Namen für den angegeben Zellbereich fest (man kann den selben Zellbereich für mehrere Namen verwenden)
ActiveSheet.Range("Personalkosten").Name = "Personalaufwand"
Damit änderst du den Namen(Bezeichnung) eines Namens (benannter Zellbereich)
ActiveWorkbook.Names("Personalkosten").Name = "Personalaufwand"
Gruß Daniel
Anzeige
AW: Bereichsnamen mit VBA ändern
29.03.2022 14:13:45
Florian
Perfekt, läuft :)
;
Anzeige
Anzeige

Infobox / Tutorial

Bereichsnamen in Excel mit VBA ändern


Schritt-für-Schritt-Anleitung

Um einen Bereichsnamen in Excel mithilfe von VBA zu ändern, kannst du folgende Schritte befolgen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu, indem du im Menü auf Einfügen > Modul klickst.

  3. Kopiere und füge den folgenden Code in das Modul ein:

    Sub PersonalkostenUmbenennen()
       Dim wksStammdaten As Worksheet
       Set wksStammdaten = ActiveWorkbook.Sheets("Stammdaten")
       wksStammdaten.Names("Personalkosten").Name = "Personalaufwand"
    End Sub
  4. Schließe den VBA-Editor und führe das Makro aus, indem du auf Entwicklertools > Makros klickst und dein Makro auswählst.

Achte darauf, dass du den richtigen Namen im Namensmanager verwendest, wenn du den Bereichsnamen änderst.


Häufige Fehler und Lösungen

Ein häufiger Fehler tritt auf, wenn du versuchst, den alten Namen zu löschen, nachdem du ihn geändert hast. Hier sind einige Lösungen:

  • Fehler 1004: Dieser Fehler kann auftreten, wenn der alte Name nicht mehr existiert. Stelle sicher, dass du den Namen nur einmal änderst und nicht versuchst, ihn danach zu löschen.

    • Lösung: Verwende nur den Code zum Umbenennen, ohne den Löschbefehl.
  • Alte Namen im Namensmanager: Wenn du sowohl den alten als auch den neuen Namen im Namensmanager siehst, könnte dies daran liegen, dass du den Namen falsch referenziert hast.

    • Lösung: Stelle sicher, dass du ActiveWorkbook.Names("Personalkosten").Name = "Personalaufwand" verwendest, um den Namen korrekt zu ändern.

Alternative Methoden

Eine alternative Methode, um einen Bereichsnamen zu ändern, ist die Verwendung einer Schleife, um spezifische Namen zu ändern. Hier ist ein Beispiel:

Sub Name_change()
    For Each nm In ActiveWorkbook.Names
        If nm.Name = "Personalkosten" Then
            nm.Name = "Personalaufwand"
        End If
    Next nm
End Sub

Diese Methode ist nützlich, wenn du mehrere Namen in einem Schritt ändern möchtest, ohne alle Namen manuell anpassen zu müssen.


Praktische Beispiele

Hier sind einige praktische Beispiele, um den Bereichsnamen in Excel zu ändern:

  1. Einfaches Umbenennen:

    Sub BeispielUmbenennen()
       ActiveWorkbook.Names("AlteBezeichnung").Name = "NeueBezeichnung"
    End Sub
  2. Überprüfung und Umbenennung:

    Sub BeispielPrüfung()
       Dim nm As Name
       For Each nm In ActiveWorkbook.Names
           If nm.Name = "AlteBezeichnung" Then
               nm.Name = "NeueBezeichnung"
           End If
       Next nm
    End Sub

Diese Beispiele zeigen, wie du Excel Bereichsnamen effizient ändern kannst, ohne Fehler im Namensmanager zu verursachen.


Tipps für Profis

  • Verwende den Namensmanager: Überprüfe im Namensmanager, dass der alte Name wirklich gelöscht wurde, nachdem du den neuen Namen festgelegt hast.
  • Namen konsistent halten: Halte deinen Namenskonventionen in Excel konsequent, um Verwirrung zu vermeiden.
  • Debugging: Nutze Debug.Print, um den aktuellen Status der Namen zu überprüfen, bevor du Änderungen vornimmst.

FAQ: Häufige Fragen

1. Warum sehe ich den alten Namen im Namensmanager?
Der alte Name bleibt im Namensmanager, wenn du ihn nicht richtig gelöscht hast. Stelle sicher, dass du den korrekten Code verwendest, um den Namen zu ändern.

2. Kann ich mehrere Namen gleichzeitig ändern?
Ja, du kannst eine Schleife verwenden, um alle gewünschten Namen in einer Arbeitsmappe zu ändern, wie im Beispiel gezeigt.

3. Welche Excel-Version benötige ich für VBA?
VBA ist in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2010, 2013, 2016, 2019 und Microsoft 365.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige