Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1968to1972
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

Sheets(Name).delete funktioniert nich?

Sheets(Name).delete funktioniert nich?
20.03.2024 16:45:26
Ben
Hallo Zusammen,

habe eine Schleife, in der ich durch Sheets loope und dann je nach Namen lösche, z.B.:

For Each Current In Worksheets
If (Current.Name > Me.portalSheetName And Current.Name > Me.templateName) Then
Current.Delete
End If
Next

Die Zeile mit Current.Delete wird erreicht.
Die Methode Delete wird nicht ausgeführt.
Auch wenn ich Sheet(Name).select ausführe, wird das Tabellenblatt nicht ausgewählt.

Was läuft da schief?
Es gibt auch keine Fehlermeldungen, o.ä.

Vielen Dank und viele Grüße
Ben

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sheets(Name).delete funktioniert nich?
20.03.2024 16:52:28
{Boris}
Hi,

Du vergleichst offensichtlich Blatt(register)namen mit den Codenamen der Blätter.

VG Boris
AW: Sheets(Name).delete funktioniert nich?
20.03.2024 18:33:20
daniel
Hi
schreibe den Code mal so um:

Debug.print me.portalSheetName, Me.templateName

For Each Current In Worksheets
debug.Print Current.Name;
If (Current.Name > Me.portalSheetName And Current.Name > Me.templateName) Then
debug.print " - löschen"
else
debug.print " ---"
End If
Next

lass das laufen (am besten im einzelstep) und beobachte, was passiert.
es sollte folgendes passieren:
zuerst werden die Namen der beiden Tabellenblätter, die nicht gelöscht werden dürfen, im Direktfenster nebeneinander angezeigt
dann werden nacheinander alle Tabellenblätter aufgelistet und es wird daneben geschrieben, ob das Blatt gelöscht werden würde oder nicht.
mach das mal und bereichte was passiert

generell würde ich das auch etwas anders schreiben, weil IF mit mehrern Bedingungen kompliziert ist und negative Logiken unser Gehirn leicht überfordern:
For each Current in Worksheets

select Case Current.Name
Case Me.portalSheetName, Me.templateName
Case else
Current.Delete
end Select
Next


noch ne andere Frage: hast du mehrere Dateien offen oder nur diese eine?
wenn mehrere Dateien offen sein können, solltest du schon angeben, welche Datei verwendet werden soll.

Gruß Daniel
Anzeige
AW: Sheets(Name).delete funktioniert nich?
21.03.2024 11:45:31
Piet
Hallo Ben

langer Thread, war bisher nicht daran beteiligt. Jetzt eine Frage von mir, aus leidvoller Erfahrung!!

Hast du in die kaputte Tabelle aus einer anderen Datei oder dem Internet etwas mit Ctrl-C und Ctrl-V kopiert??
Das hat den bösen Effekt, das ALLES eingefügt wird, inclusive manchmal -unsichtbaren- Objekten. Böse Falle!
Zur Sicherheit lieber beim externen kopieren nur reinen Text kopieren. Dann kopierst du keine Objekte mit.

mfg Piet
AW: Sheets(Name).delete funktioniert nich?
21.03.2024 15:10:35
Ben
Hallo Piet,

ja, ich vermute, dass es an sowas lag.
Ich hatte in einem Tabellenblatt ein Bild eingefügt, dass dann in andere Tabellenblätter kopiert werden sollte.
Es hing meiner Meinung nach damit zusammen.

VG
Anzeige
AW: Sheets(Name).delete funktioniert nich?
20.03.2024 18:44:49
Ben
Vielen Dank für Deine (Eure) Tipps.
Ich glaube hier war etwas grundlegendes an der Arbeitsmappe kaputt.
Plötzlich habe ich die Meldung bekommen: Das aufgerufene Objekt wurde von den Clients getrennt.
Dann ging nichts mehr.
Bei jedem "Speichern unter" ist Excel abgestürzt.
Anscheinend war eines der Tabellenblätter kaputt, das kopiert werden sollte.
In einer Zelle war ein kleines Bild eingefügt.
Wenn man dieses Tabellenblatt ändern wollte, erfolgte ebenfalls ein Absturz.

Ich glaube, ich kriege es jetzt hin.
Es lag aber sicher nicht an Coding-Problemen oder Fehlern.

Vielen Dank und viele Grüße

(Vielleicht habt Ihr ja Ideen, warum so eine Mappe dermaßen kaputt gehen kann.
Und was die obige Meldung bedeutet)
Anzeige
AW: Sheets(Name).delete funktioniert nich?
20.03.2024 19:19:05
Oberschlumpf
Hi,

...Vielleicht habt Ihr ja Ideen, warum so eine Mappe dermaßen kaputt gehen kann...

Windows wurde von Menschen programmiert.
Excel wurde von Menschen programmiert.

Menschen machen Fehler - AUCH bei der einen oder anderen Programmierung!

...das - ist einer - von vielen, möglichen Gründen...

Ciao
Thorsten
AW: Sheets(Name).delete funktioniert nich?
20.03.2024 17:04:33
Ben
Hallo,

Danke. Ja, aber genau das will ich tun.
Das müsste nach Debugger auch vergleichbar sein.

VG
Danke!
AW: Sheets(Name).delete funktioniert nich?
20.03.2024 17:35:16
Ben
Hallo !

Nein, ich vergleich nicht mit .Codename, sondern mit .Name.

Was stimmt da nicht?

VG
Anzeige
AW: Sheets(Name).delete funktioniert nich?
20.03.2024 17:39:17
Onur
If Current.Name > "NameXY" And Current.Name > "NameZZ" Then 

Ausserdem:
Sheet(Name).select
kann gar nicht funktionieren, wenn schon, dann das:
Sheets("Name").select
VBA gut?
AW: Sheets(Name).delete funktioniert nich?
20.03.2024 17:44:21
Ben
Hallo Onur,

natürlich verwende ich Sheets(...).select.
Es kommt ja nicht mal zu einem Fehler.
Die angesprochenen Sheets werden nicht selektiert und nicht gelöscht.
Ich weiß nicht, woran es liegt.

VG
AW: Sheets(Name).delete funktioniert nich?
20.03.2024 17:45:50
Onur
Hast du irgendwo davor "On Error Resume Next" eingebaut? Wenn ja, lösche die Zeile und du siehst alle Fehler.
AW: Sheets(Name).delete funktioniert nich?
20.03.2024 17:47:57
daniel
Lad mal die Datei hoch
die Blattinhalte kannst du löschen.
Wenn wir genau sehen, was du machst, dann können wir dir auch sagen, was du falsch machst.
wir wissen noch nicht genug, beispielsweise, wo steht der Code und was ist ME?
Mit der Datei können wir uns diese Fragen selber beantworten ohne dass du uns das sagen musst.
Gruß Daniel
Anzeige
AW: Sheets(Name).delete funktioniert nich?
20.03.2024 17:52:23
Ben
Hallo Daniel,

vielen Dank für Deine Antwort.
Ich kann die Datei nicht hochladen.
Das ist ein sehr langer Quellcode.
Die Operationen werden in einem Klassen-Objekt ausgeführt.
Deswegen Me.XXX

Die Vergleiche mit If funktionieren.
Es werden auch die Befehle wie Current.delete fehlerfrei aufgerufen, aber nicht ausgeführt.
Der Debugger geht einfach drüber, ohne dass etwas passiert.

Ich bin relativ ratlos.

Kann das irgendwas mit Sicherheitseinstellungen oder Blattschutz zu tun haben?

VG.
AW: Sheets(Name).delete funktioniert nich?
20.03.2024 17:54:25
Onur
"Der Debugger geht einfach drüber, ohne dass etwas passiert. " Das tut er immer, wenn ein Fehler vorliegt und du "ON ERROR RESUME NEXT" davor stehen hast.
Anzeige
AW: Sheets(Name).delete funktioniert nich?
20.03.2024 18:10:13
Ben
... tut es aber nicht.
Leider sind Deine Antworten nicht hilfreich.

Der Debugger verhält sich ansonsten vollkommen normal.

VG
AW: Sheets(Name).delete funktioniert nich?
20.03.2024 18:13:14
Onur
HILFREICH wäre deine Datei, sonst ist es nur herumraten.
Hast du nun irgendwo "ON ERROR RESUME NEXT" oder nicht ?
AW: Sheets(Name).delete funktioniert nich?
20.03.2024 18:16:12
Ben
Hallo Onur,

Danke für Deine Antwort.
Wie vorhin geschrieben, kann ich die Datei auf keinen Fall hochladen.
Es ist eine riesige Arbeitsmappe mit zahlreichen Blättern, Modulen und Klassen.
Im Verlauf einiger Makros werden Tabellenblätter erstellt und gelöscht.
Diese geschieht wie oben beschrieben mit den dargestellten Vergleichen.
Es funktioniert nicht (mehr).
Evtl. ist etwas grundlegend an der Mappe kaputt gegangen.

VG
Anzeige
AW: Sheets(Name).delete funktioniert nich?
20.03.2024 18:29:32
Onur
Wenn du willst, kannst du sie mir per Mail schicken.
AW: Sheets(Name).delete funktioniert nich?
20.03.2024 17:25:45
Onur
Was sollen denn, deiner Meinung nach, Me.portalSheetName und Me.templateName sein ???
AW: Sheets(Name).delete funktioniert nich?
20.03.2024 17:41:59
Ben
Hallo Zusammen,

danke schonmal.

Ich arbeite in einer Klasse.
Die jeweiligen Sheet-Names sind eben Klassen-Variablen.
Es sind die wirklichen Sheet-Names, nicht die Sheet-Codenames.

VG
AW: Sheets(Name).delete funktioniert nich?
20.03.2024 17:51:47
daniel
Also Me.portalSheetName ist ein Textstring, der dem Namen eines der Tabellenblätter entspricht?
AW: Sheets(Name).delete funktioniert nich?
20.03.2024 17:27:20
RPP63
Moin!
Setze mal Option Explicit
Deklariere vernünftig und berichte wo es crasht.

Gruß Ralf
AW: Sheets(Name).delete funktioniert nich?
20.03.2024 17:41:49
Onur
Wahrscheinlich ist da, rein prophylaktisch, irtgendwo davor ein "On Error Resume Next" eingebaut, wie es bei Anfängern üblich ist.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige