Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
360to364
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
360to364
360to364
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Namen löschen per VBA

Namen löschen per VBA
12.01.2004 09:15:56
Stefan
Hallo zusammen,
ich versuche mit folgender Prozedur die vorhandenen Namen in einem Tabellenblatt zu löschen. Es wird jedoch nur jeder 2. Name tasächlich gelöscht und ich laufe auf einen Fehler. Der Grund liegt darin, dass mit Ausführung der 4. Zeile schon der nächste Name genommen wird, mit Beginn der Schleife der übernächste Name. Hat jemand eine Idee, wie man das Problem lösen kann?

Sub NamenLoeschen()
Set nms = ActiveWorkbook.Names
For r = 1 To nms.Count
ActiveWorkbook.Names(nms(r).Name).Delete
Next
End Sub

Besten Dank.

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Namen löschen per VBA
12.01.2004 09:19:04
Matthias G
Hallo Stefan,
einfach von hinten anfangen:
(...)
For r = nms.Count to 1 step -1
(...)
Gruß,
Matthias
AW: Namen löschen per VBA
12.01.2004 09:29:09
Stefan
Hallo Matthias,
hat wunderbar funktioniert. Warum ich rückwärts zählen muss ist mir aber dabei nicht ganz klar.
Nochmals besten Dank.
Grüße Stefan
AW: Namen löschen per VBA
12.01.2004 09:38:33
Matthias G
Hallo Stefan,
Danke für die Rückmeldung.
Wenn Du vorwärts zählst, wird z.B. der Name mit Index 1 gelöscht. Dann rückt automatisch der Name mit Index 2 auf den ersten Rang. Dein Schleifenzähler ist aber schon bei 2.
Also ist dieser zweite Name "durchgerutscht", ohne gelöscht zu werden. So passiert das eben mit jedem zweiten Namen.
Gruß,
Matthias
Anzeige
AW: Namen löschen per VBA
12.01.2004 09:43:27
Carsten
Hallo Matthias, hallo Stefan,
entschuldigt wenn ich mich einmische aber ich lese gerne mit um zu lernen.
Warum denn überhaupt mit einem Schleifenzähler arbeiten? Warum löscht man nicht immer den Namen mit Index1 bis keine Namen mehr im Blatt vorhanden sind?
Gruß
Carsten
AW: Namen löschen per VBA
12.01.2004 09:47:23
Stefan
Hallo Carsten,
den Schleifenzähler habe ich in der Excel-Hilfe gefunden. Wenn es andere Lösungen gibt bin ich für jede Anregung dankbar.
Grüße Stefan
AW: Namen löschen per VBA
12.01.2004 09:53:49
Carsten
Hallo Stefan,
meine Frage war eher auf die Antwort von Matthias bezogen. Meiner Meinung nach ist es einfacher immer wieder den Namen mit Index1 zu löschen bis kein Name mehr vorhanden ist.
Ich bin allerdings in VBA nicht so fit wie viele andere hier und darum wollte ich jetzt wissen, ob das wirklich so ist oder ob ich etwas wesentliches Übersehe.
Gruß
Carsten
Anzeige
AW: Namen löschen per VBA
12.01.2004 09:54:08
Matthias G
Hallo Carsten,
da hast Du natürlich recht, so geht's auch! :-)
Hab' das mit dem rückwärts zählen daher, um alle Leerzeilen eines Blattes zu löschen. Da muss man auf alle Fälle von hinten anfangen.
Viele Grüße,
Matthias
AW: Ohne Zähler: der Code
12.01.2004 09:58:27
Matthias G
Also so geht's auch, wie Carsten schon bemerkt hat:

Sub NamenLoeschen()
Set nms = ActiveWorkbook.Names
Do While nms.Count > 0
ActiveWorkbook.Names(1).Delete
Loop
End Sub

Gruß,
Matthias
AW: Namen löschen per VBA
12.01.2004 09:44:51
Stefan
Hallo Matthias,
vielen Dank für Deine ausführlichen Erklärungen.
Schönen Tag noch.
Grüße Stefan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige