Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1692to1696
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
VBA Laufzeitfehler 9
23.05.2019 10:14:18
Jenny
Hallo zusammen,
ich schreibe gerade einen VBA-Code über einen CommandButton, der im Abgleich einer Liste mir _
die Tabellenblätter löscht, deren Name in der Liste enthalten ist:

Private Sub CommandButton2_Click()
Dim i As Integer
Dim j As Integer
Dim leer As Boolean
Application.DisplayAlerts = False
For i = 1 To Worksheets.Count
j = 0
leer = False
Do While sheets("Übersicht").Range("H3").Offset(j, 0)  ""
If leer = False Then
If sheets(i).Name = sheets("Übersicht").Range("H3").Offset(j, 0) Then
sheets(i).Delete
leer = True
End If
End If
j = j + 1
Loop
Next i
Application.DisplayAlerts = True
End Sub

Dabei taucht der Laufzeitfehler 9: Index außerhalb des gültigen Bereichs auf.
Probleme hat der mit dem "Sheets(i).Name = Sheets....", wenn ich dort im Code auf Details gehe, kommt die Info "Bezeichner unter dem Cursor nicht gefunden".
Das komische ist aber, dass er mir den Code eigentlich bis auf die Meldung am Ende fehlerfrei ausführt, d.h. es werden alle gewünschten Tabellenblätter wie geplant gelöscht.
Wisst ihr, wo das Problem genau liegt, bzw. wie man die Fehlermeldung unterdrücken kann? Durch das "application.Displayalerts" funktioniert das leider nicht.
Vielen Dank!
Jenny

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Laufzeitfehler 9
23.05.2019 10:19:24
Nepumuk
Hallo Jenny,
wenn die Mappe 5 Tabellen hat und du löschst die 3. dann hat sie nur noch 4 Tabellen. Was denkst du passiert wenn du den Namen der 5. Tabelle abfragst die es ja nicht mehr gibt?
Lösche von hinten nach vorne, dann klappt's.
Gruß
Nepumuk
AW: VBA Laufzeitfehler 9
23.05.2019 10:49:24
Jenny
Vielen Dank!!!
Habe jetzt die For-Schleife umgekehrt und es funktioniert!! :)
AW: VBA Laufzeitfehler 9
23.05.2019 10:27:00
Daniel
Hi
in dem Fall würde ich einfach über die Liste laufen und das jeweilige Blatt löschen.
den Fehler, wenn das zu löschende Blatt nicht vorhanden ist, kannst du einfach ignorieren, denn ob das Blatt jetzt nicht mehr da ist, weil du es gelöscht hast oder weil es noch nie da war, ist ja egal, das Ergebnis ist das gleiche
dim Zelle as Range
With Sheets("Übersicht")
for each Zelle in Range(.Range("H3"), .Range("H3").end(xldown))
on Error Resume next
Sheets(Zelle.Text).Delete
on Error Goto 0
next
End with

Gruß Daniel
Anzeige
AW: VBA Laufzeitfehler 9
23.05.2019 11:12:44
Jenny
Vielen Dank,
ich habe jetzt die Lösung mit der umgekehrten For-Schleife ausprobiert und das klappt.
Deinen Vorschlag kann ich bestimmt irgendwann bei einem anderen Problem nutzen.
Danke!

37 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige