Excel 2013 VBA: Löschen von Tabellenblättern
#1
Hallo zusammen,

vielleicht könnt Ihr mir mal wieder auf die Sprünge helfen.
In einer Arbeitsmappe, die sehr viele und immer eine unterschiedliche Anzahl von Tabellenblätter beinhaltet, sollen alle Blätter bis auf drei bestimmte Blätter per VBA löschen.
Probiert habe ich es einmal mit Angabe des Reiter-Namens und einmal mit dem Tabellen-Namen.
Beides funktioniert leider irgendwie nicht. Es werden immer alle bis auf eine letzte Tabelle gelöscht.

Habt Ihr mir eine Idee wie das richtig funktionieren kann.

Code:
Sub TabellenEntfernen1()
 Dim Sheet As Worksheet
 
 For Each Sheet In ActiveWorkbook.Worksheets
   If Sheet.Name <> "DMC_Codes_Work" Or Sheet.Name <> "Inhalt" Or Sheet.Name <> "Indexblatt" Then
     Application.DisplayAlerts = False
     Sheet.Delete
     Application.DisplayAlerts = True
   End If
 Next Sheet
End Sub

Sub TabellenEntfernen2()
 Dim wksBlatt As Worksheet
 
 Application.DisplayAlerts = False
 For Each wksBlatt In ThisWorkbook.Worksheets
   If wksBlatt.Name <> "Tabelle1" Or wksBlatt.Name <> "Tabelle2" Or wksBlatt.Name <> "Tabelle3" Then wksBlatt.Delete
 Next
 Application.DisplayAlerts = True
End Sub


Vielen Dank!
Top
#2
Hallo Erich,

probiere es mal mit UND-Bedingungen. Wink

Auch ist es keine gute Idee, Sheet als Variable zu nehmen, da es die ja schon excelintern gibt.

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • sharky51
Top
#3
(22.12.2017, 12:28)Kuwer schrieb: Hallo Erich,

probiere es mal mit UND-Bedingungen. Wink

Auch ist es keine gute Idee, Sheet als Variable zu nehmen, da es die ja schon excelintern  gibt.

Gruß Uwe

Hallo Uwe,

danke für den Tipp - so funktioniert es !!!!
Warum es mit der Oder-Verknüpfung nicht geht erschließt sich mir noch nicht so ganz Sad

Vielen Dank und ein frohes Weihnachtsfest!
Top
#4
Hallo Erich

Zitat:If Sheet.Name = "DMC_Codes_Work" Or Sheet.Name = "Inhalt" Or Sheet.Name = "Indexblatt" Then
Else

wenn ich den Code richtig verstanden habe geht das auch mit "=" OR, dann muss man aber die Logik umkehren!!
Hinter die IF OR Anqweisung gehört dann unbedingt Else, und der weitere Auswerte Code muss unter Else laufen!

Ich hoffe das ich es so richtig erklaert habe.  Und ein frohes Weihnachrtsfest.

mfg  Gast 123
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste