Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1232to1236
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Namen löschen - Laufzeitfehler

Namen löschen - Laufzeitfehler
Dennis
Hallo zusammen,
ich habe schon so unzählige Mal hier in diesem Forum hilfe gefunden. Nun bin ich jedoch auf ein Problem gestoßen wofür ich nirgends eine Lösung finde.
Ich habe eine recht große Exceldatei deren Inhalt sich aus den verschiedensten anderen Excel Dateien zieht. Durch das zusammenkopieren der verschiedenen Dateien habe ich einen schier unüberschaubaren Wust an Namensdefinitionen hervorgerufen. Jedoch sind im Namensmanager gar keine eingegeben. Wenn ich jedoch alle Namen einmal per VBA aufliste erscheinen einige tausende.
Wenn ich versuche nun diese mit Hilfe von VBA zu löschen kommt eine Fehlermeldung bzw. Laufzeitfehler 1004. Hier wird mir gesagt, dass die Namen nicht gelöscht werden können, da sie entweder Leerzeichen enthalten oder andersweitig nicht in Ordnung sind.
Gibt es eine Möglichkeit diese Namensdefinitionen dennoch zu löschen?
Besten Gruß
Dennis

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Dein Code? owT
19.10.2011 09:48:00
Rudi
AW: Namen löschen - Laufzeitfehler
19.10.2011 09:57:24
Dennis
Hallo,
zum Auflisten der einzelnen vorhanden Namen habe ich diesen Code verwendet:
Const Blattname = "Bereichsnamen"

Sub Namen_listen()
On Error Resume Next
Application.DisplayAlerts = False
Sheets(Blattname).Delete
Sheets.Add
ActiveSheet.Name = Blattname
Listname = ActiveSheet.Name
With Sheets(Listname)
.Range("A1") = "Name"
.Range("B1") = "Bereich"
.Columns("A:A").NumberFormat = "@"
.Columns("B:B").NumberFormat = "@"
End With
Zeile = 2
For Each objName In ActiveWorkbook.Names
With Sheets(Listname)
.Range("A" & Zeile) = objName.Name
.Range("B" & Zeile) = objName.Value
End With
Zeile = Zeile + 1
Next objName
With Sheets(Listname)
.Columns("A:A").AutoFit
.Columns("B:B").AutoFit
End With
End Sub

zum löschen dann zum einen diesen hier:

Sub Namen_löschen()
Dim definedName As Object
For Each definedName In ActiveWorkbook.Names
definedName.Delete
Next
End Sub
und zum anderen diesen hier:

Sub delete_name()
Dim names_ As Name
For Each names_ In ThisWorkbook.Names
names_.Delete
Next
End Sub
Aber bei beiden kam der oben beschriebene Fehler
Gruß
Dennis
Anzeige
AW: Namen löschen - Laufzeitfehler
19.10.2011 10:28:18
Rudi
Hallo,
ich sehe keinen Grund, warum Code 2 nicht funktionieren sollte.
Gruß
Rudi
AW: Namen löschen - Laufzeitfehler
19.10.2011 11:06:55
Dennis
Ich verstehe auch nicht warum der Fehler kommt, aber er kommt. Daher habe ich mich ja auch hier ans Forum gewandt.
Gruß
Dennis
AW: Namen löschen - Laufzeitfehler
19.10.2011 12:38:58
guentherh
Du schreibst im Namensmanager sind keine eingegeben - sind dort auch keine sichtbar?
ggf. braucht es die Visible-Eigenschaft auf True
oder die Delete-Methode muckt, dann wäre der Ansatz die Beispielssyntax aus der Hilfe zu verwenden
in deinem Fall:
For Each definedName In ActiveWorkbook.Names
Nam=definedName.name
ActiveWorkbook.Names(Nam).Delete
Next
Oder die Arbeitsmappe /das Blatt ist geschützt
dann vorher sämlichen Schutz aufheben
Das ist ein bisschen was zum Probieren,
Gruß,
Günther
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige