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

Tabellennamen mit bestimmten Muster löschen

Tabellennamen mit bestimmten Muster löschen
05.06.2016 16:32:14
Anton
Hallo Zusammen,
ich möchte gerne Tabellen mit dem Muster "Datensatz (1)", "Datensatz (2)" usw. dynamisch löschen. Die Schleife dazu habe ich bereits aufgesetzt. Diese funktioniert auch wenn ich nur einen bestimmten Namen löschen möchte. Muss man hier evtl. mit RegEx arbeiten oder eine Zählvariable definieren?
Danke für eure Unterstützung und schönen Sonntag noch.
VG Anton

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

Betreff
Datum
Anwender
Anzeige
AW: Tabellennamen mit bestimmten Muster löschen
05.06.2016 16:48:37
Mullit
Hallo,
vielleicht reicht das schon:
Option Explicit

Public Sub DeleteSheets_ByName()
Dim wksSheet As Worksheet
Application.DisplayAlerts = False
For Each wksSheet In ThisWorkbook.Worksheets
   With wksSheet
        If .Name Like "Datensatz (?*)" Then Call .Delete
   End With
Next
Application.DisplayAlerts = True
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 12

Gruß, Mullit

Anzeige
AW: Tabellennamen mit bestimmten Muster löschen
05.06.2016 16:57:14
Mullit
Hallo,
uuups, besser noch so:
Option Explicit

Public Sub DeleteSheets_ByName()
Dim wksSheet As Worksheet
Application.DisplayAlerts = False
For Each wksSheet In ThisWorkbook.Worksheets
   With wksSheet
        If .Name Like "Datensatz (#*)" Then Call .Delete
   End With
Next
Application.DisplayAlerts = True
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 12

Gruß, Mullit

Anzeige
AW: Tabellennamen mit bestimmten Muster löschen
05.06.2016 17:33:22
Anton
Hi Mullit,
vielen Dank für das schnelle Feedback. Deine Methode hat super geklappt! Wäre es möglich, auch mehrere Bedingungen zu formulieren? Also alle Tabellenblätter welche nicht den Namen "Datensatz1 (#*)" und "Zusammenfassung1 (#*)" enthalten sollen gelöscht werden. Ich habe bereits umfassend recherchiert und unzählige Bedingungen versucht aber irgendwie will es nicht klappen.
Danke für Deine Mühe!
VG Anton

AW: Tabellennamen mit bestimmten Muster löschen
05.06.2016 18:05:52
Mullit
Hallo,
klar, einfach so:
Option Explicit

Public Sub DeleteSheets_ByName()
Dim wksSheet As Worksheet
Application.DisplayAlerts = False
For Each wksSheet In ThisWorkbook.Worksheets
   With wksSheet
        If .Name Like "Datensatz (#*)" Or _
          .Name Like "Zusammenfassung (#*)" Then Call .Delete
   End With
Next
Application.DisplayAlerts = True
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 12

Gruß, Mullit

Anzeige
AW: Tabellennamen mit bestimmten Muster löschen
06.06.2016 09:58:57
Alex
... da allerdings die Sheets gelöscht werden sollten, die nicht "Datensatz..." oder "Zusammenfassung1..." heißen, wäre es dann halt die Negation:

Option Explicit
Public Sub DeleteSheets_ByName()
Dim wksSheet As Worksheet
Application.DisplayAlerts = False
For Each wksSheet In ThisWorkbook.Worksheets
With wksSheet
If Not .Name Like "Datensatz (#*)" And _
Not .Name Like "Zusammenfassung (#*)" Then Call .Delete
End With
Next
Application.DisplayAlerts = True
End Sub
VG,
Alex

AW: Tabellennamen mit bestimmten Muster löschen
06.06.2016 10:32:45
Anton
Hallo Mullit & Alex,
vielen Dank für eure Lösungsvorschläge. Beide Lösungen funktionieren einwandfrei. Ich habe versucht das Ganze noch über einen anderen Ansatz zu lösen. Nur bekomme ich im Beispiel unten immer einen Laufzeitfehler 1004 bzgl. der Delete Methode. Habt ihr vielleicht eine Erklärung hierfür?
Public Sub DeleteSheets_ByName()
Dim wksSheet As Worksheet
Application.DisplayAlerts = False
For Each wksSheet In ThisWorkbook.Worksheets
With wksSheet
If .Name  "Datensatz (#*)" And .Name  "Zusammenfassung (#*)" Then
.Delete
End If
End With
Next wksSheet
Application.DisplayAlerts = True
End Sub
Danke und viele Grüße,
Anton

Anzeige
AW: Tabellennamen mit bestimmten Muster löschen
07.06.2016 18:23:33
Mullit
Hallo Alex und Anton,
hat Anton allerdings erst anders geschrieben, das muß eben immer exakt sein:
Also alle Tabellenblätter welche nicht den Namen "Datensatz1 (#*)"

Wenn Du jetzt den umgekehrten Fall willst, dann so:
Option Explicit

Public Sub DeleteSheets_ByName()
Dim wksSheet As Worksheet
Application.DisplayAlerts = False
For Each wksSheet In ThisWorkbook.Worksheets
   With wksSheet
        If Not (.Name Like "Datensatz (#*)" Or _
          .Name Like "Zusammenfassung (#*)") Then Call .Delete
   End With
Next
Application.DisplayAlerts = True
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 12

Gruß, Mullit

Anzeige
AW: Tabellennamen mit bestimmten Muster löschen
07.06.2016 18:40:00
Mullit
Achja und ich seh grad, Du hast den Like-Operator eliminiert, daher rührt der Fehler, da dieser mit Wildcard-Zeichen arbeitet, die bei Abfrage auf Ungleichheit zu einem nicht vorhandenen Namen führen, wodurch alle Tabblätter gelöscht werden, da aber eines in der Mappe enthalten sein muß, entsteht der Fehler...
Gruß, Mullit

AW: Tabellennamen mit bestimmten Muster löschen
08.06.2016 14:23:58
Anton
Hi Mullit,
danke für die Erklärung. Da bin ich auch nach ausführlicher Recherche nicht drauf gekommen.
VG Anton

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige