Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Namen mit dem Wert #BEZUG! löschen

Namen mit dem Wert #BEZUG! löschen
11.07.2013 16:46:44
Hans
Guten Tag,
wenn ich mir die Liste der Namen anzeigen lasse, gibt es in meinem Fall einige deren Wert mit #BEZUG! angegeben sind. Wie kann ich diese per VBA erkennen und löschen?
Habe mir schin einige Eigenschaften der Namen anzeigen lassen, finde jedoch keine Eigenschaft die einen Fehler auslöst oder #BEZUG! enthält. Im Forum habe ich zwar einige Beiträge zu ähnlichen Themen gefunden, jedoch nicht konkretes.
Könnt ihr mir dabei helfen?
Vielen Dank
Gruß
Hans

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Namen mit dem Wert #BEZUG! löschen
11.07.2013 17:30:02
Beverly
Hi Hans,
Sub NamenLoeschen()
Dim namName As Name
For Each namName In ActiveWorkbook.Names
If InStr(namName.RefersTo, "#REF!") > 0 Then namName.Delete
Next namName
End Sub


Anzeige
AW: Namen mit dem Wert #BEZUG! löschen
11.07.2013 17:36:19
Markus
Hallo Hans,
weiß meinst du mit Liste von Namen.
Wenn sich die Liste zellbezogen aufbaut und du eine Änderung vorgenommen hast, wie z.B. eine Zeile gelöscht, kann es sein, dass er die entsprechende Zeile nicht mehr findet und dann erhälst du diesen fehler. Hier stellt sich die Frage, wie die Liste aufgebaut ist.
Definitiv ist der ursprüngliche Bezug nicht mehr vorhanden bzw. hat sich verschoben. Noch einmal genau nachschauen bzw. Datei hier hochladen.
Gruß Markus

Anzeige
AW: Namen mit dem Wert #BEZUG! löschen
12.07.2013 09:43:52
Hans
Hallo Markus,
vielen Dank für deine Antwort. Mit Liste der Namen meine ich die Liste die angezeigt wird wenn der "NamensManager" aus "Formeln" aufgerufen wird. Dort stehen in der zweiten Spalte der "Wert" der diesem Namen zugeordnet ist. Hier steht bei den Werten, bei denen keinen Wert verfügbar ist (weil z.B. die Tabelle aus der dieser Wert gezogen wird nicht mehr vorhanden ist), #BEZUG! drin. Diese Nemn will ich suchen und löschen.
Warum dort #BEZUG! drinnen steht, ist mir somit schon klar. Ich will die Verbindung auch nicht wieder herstellen, oder nach der Verbindung suchen. Einfach nur herausfinden gibt es zu diesem Namen keine Verbindung mehr, dann den Namen löschen.
Ich hoffe das Problem jetzt genauer geschildert zu haben und bedanke mich im Vorraus für eure Hilfe.
P.S. der Vorschlag der mir unterbreitet wurde hatte ich schon ausprobiert. In der Eigenschaft "RefersTo" wird mir nur angezeigt woraus der Wert ursprünglich gelesen wurde.
Gruß Hans

Anzeige
AW: Namen mit dem Wert #BEZUG! löschen
12.07.2013 10:15:14
Beverly
Hi Hans,
du hast meinen Code schon getestet?


AW: Namen mit dem Wert #BEZUG! löschen
12.07.2013 11:26:12
Hans
Hi Karin,
wie schon in der Antwort an Markus beschrieben, hatte ich den selben Code schon selbst ausprobiert. In RefersTo steht die Verbindung aus welcher Mappe der Wert ursprünglich gezogen wurde. z.B. 'C:\MyOrdner\[MeineExcelMappe.xls]'!$A$1. Damit kann ich nichts anfagen, da es ggf. weitere Namen geben kann die ebenfalls ihre Werte aus einer externen Mappe beziehen, die aber noch vorhanden sind. Ich muss feststellen können, ob der WERT ankommt oder nicht.
Gruß Hans

Anzeige
AW: Namen mit dem Wert #BEZUG! löschen
12.07.2013 12:27:28
Beverly
Hi Hans,
Zitat aus deinem Eröffnungsbeitrag:
wenn ich mir die Liste der Namen anzeigen lasse, gibt es in meinem Fall einige deren Wert mit #BEZUG! angegeben sind. Wie kann ich diese per VBA erkennen und löschen?
Und genau diese Namen, die #BEZUG! beinhalten, werden mit dem von mir geposteten Code gelöscht.
Deine jetzige Aufgabenstellung ist eine andere - es soll geprüft werden, ob die externe Arbeitsmappe noch vohanden ist:
Sub NamenLoeschen()
Dim namName As Name
For Each namName In ActiveWorkbook.Names
If IsError(Application.Evaluate(Mid(namName.RefersTo, 2))) Then namName.Delete
Next namName
End Sub


Anzeige
AW: Namen mit dem Wert #BEZUG! löschen
12.07.2013 13:52:11
Hans
Hallo Karin,
entschuldige das Missverständniss, den Code den du jetzt gepostet hast ist GENAU das was ich gesucht habe.
Vielen Dank für die Hilfe.
Schönes WE und Gruß
Hans
;
Anzeige
Anzeige

Infobox / Tutorial

Namen mit dem Wert #BEZUG! löschen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und lade die Arbeitsmappe, in der Du die Namen mit dem Wert #BEZUG! löschen möchtest.

  2. Öffne den VBA-Editor: Drücke ALT + F11.

  3. Füge ein neues Modul hinzu: Klicke im Menü auf Einfügen und dann auf Modul.

  4. Kopiere den folgenden VBA-Code in das Modul:

    Sub NamenLoeschen()
       Dim namName As Name
       For Each namName In ActiveWorkbook.Names
           If IsError(Application.Evaluate(Mid(namName.RefersTo, 2))) Then
               namName.Delete
           End If
       Next namName
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Führe das Makro aus: Drücke ALT + F8, wähle NamenLoeschen aus der Liste und klicke auf Ausführen.

Dieser Code sucht alle Namen, die mit #BEZUG! markiert sind, und löscht sie. Dadurch kannst Du schnell und effizient das excel namensfeld löschen und die Übersichtlichkeit Deiner Arbeitsmappe verbessern.


Häufige Fehler und Lösungen

  • Fehler: Das Makro löscht nicht alle #BEZUG!-Namen.

    • Lösung: Stelle sicher, dass Du den aktuellen Code aus dem VBA-Editor verwendet hast und dass alle Namen im Namensmanager sichtbar sind.
  • Fehler: VBA gibt eine Fehlermeldung aus.

    • Lösung: Überprüfe, ob Du den richtigen Bezug in der RefersTo-Eigenschaft hast. Möglicherweise ist der Name nicht korrekt definiert.

Alternative Methoden

Wenn Du kein VBA verwenden möchtest, kannst Du auch den Namensmanager nutzen:

  1. Gehe zu Formeln > Namensmanager.
  2. Suche nach Namen, die den Wert #BEZUG! haben.
  3. Markiere und lösche diese Namen manuell.

Diese Methode ist weniger automatisiert, aber bietet eine gute Möglichkeit, um Namen zu überprüfen und gegebenenfalls zu entfernen.


Praktische Beispiele

Beispiel 1: Du hast eine Excel-Datei, in der Du mehrere Tabellenblätter hast und einige davon wurden gelöscht. Wenn Du den Namensmanager öffnest, siehst Du, dass einige Namen auf #BEZUG! verweisen. Nutze das VBA-Skript, um diese Namen schnell zu entfernen.

Beispiel 2: In einem Projekt hast Du dynamische Bereiche, die auf Daten in einer externen Datei verweisen. Wenn diese Datei nicht mehr existiert, erhältst Du #BEZUG! in den Feldern. Mit dem excel zellen namen löschen-Befehl kannst Du diese fehlerhaften Verknüpfungen bereinigen.


Tipps für Profis

  • Regelmäßige Überprüfung: Nutze den Namensmanager regelmäßig, um fehlerhafte Namen frühzeitig zu erkennen und zu löschen.
  • Dokumentation: Halte eine Liste der verwendeten Namen und deren Referenzen, um später leichter nachvollziehen zu können, warum bestimmte Namen existieren.
  • Makros speichern: Speichere Deine Makros in der persönlichen Makro-Arbeitsmappe, um sie in jeder Excel-Sitzung nutzen zu können.

FAQ: Häufige Fragen

1. Was passiert, wenn ich einen Namen lösche?
Wenn Du einen Namen löscht, wird die Verbindung zu den Zellen oder Bereichen, auf die dieser Name verweist, entfernt. Stelle sicher, dass Du diesen Namen nicht mehr benötigst.

2. Kann ich das Löschen rückgängig machen?
Das Löschen von Namen kann nicht rückgängig gemacht werden. Es ist ratsam, vor dem Löschen eine Sicherungskopie der Arbeitsmappe anzufertigen.

3. Gibt es eine Möglichkeit, nur bestimmte Namen zu löschen?
Ja, Du kannst den VBA-Code anpassen, um nur Namen zu löschen, die bestimmten Kriterien entsprechen. Zum Beispiel könntest Du nur Namen löschen, die mit einem bestimmten Wort beginnen.

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