online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon speedy71 vom 12.04.2022, 20:22 Options

Lösung

tabellenblätter per vba auswählen und löschen

Guten Abend,

ist es möglich per vba mehrere Tabellenblätter auzuwählen und dann zu löschen, habe hier jetzt schon gesucht und nichts gefunden, bis eben eine antwort, weiß aber nicht wie ich sie anwenden muß.


grüße
Achim


Antwort schreiben

Antwort 1 von finger59 vom 12.04.2022, 22:05 Options

Hi Achim,

auch wenn ich nur sehr wenig VBA-Kenntnisse habe - generell ist das schon möglich.

Aber - was ist Dein Kriterium zum löschen?

Ich denke so wirst Du evtl. keine Lösung erhalten können, die Dir sofort weiterhilft, da jede Lösung mit einer Gegenfrage von Dir enden könnte, mit ... und wenn ich diese und jene haben möchte?

Die einfachste Methode wäre ansonsten das Aufzeichnen eines Makros mit dem Makrorekorder, aber ich denke das wird Dir nicht die Lösung bringen, die Du haben willst. Aber - es wäre die erste mögliche Antwort auf Deine Frage ;-).

In diesem Sinne... have a nice Day... Gruß Helmut

Antwort 2 von nighty vom 13.04.2022, 07:17 Options

hi all ^^

wie gewuenscht :-)

gruss nighty

alternativ zum index die worksheetnamen

Option Explicit
Sub WorkSheetsDelete()
    Call EventsOff
    Worksheets(Array(1, 3)).Delete
    Call EventsOn
End Sub  

Public Sub EventsOff()
    With Application
        .DisplayAlerts = False
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
    End With
End Sub  
Public Sub EventsOn()
With Application
.DisplayAlerts = False
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub

Antwort 3 von nighty vom 13.04.2022, 07:25 Options

hi all ^^^

be dem modul EventsOn ist zu korrigieren

.DisplayAlerts =True

gruss nighty

Antwort 4 von speedy71 vom 13.04.2022, 11:18 Options

Hallo nighty,

erstmal Danke, bekomme aber bei der folgenden Zeile eine Fehlermeldung

Worksheets(Array(1, 3)).Delete

und zwar Index außerhalb des gültigen Bereichs,

ich denke mal das liegt daran das die Tabellenblätter immer wieder einen anderen Namen haben.

und was vielleicht nicht so rübergekommen ist, ich möchte nicht alle Tabellenblätter löschen sondern eben nur bestimmte und die möchte ich eben auswählen können.

grüße
Achim

Antwort 5 von nighty vom 15.04.2022, 12:45 Options

hi achim ^^

was haettest du dann fuer vorstellungen der darstellung :-)

bei sehr vielen worksheets vielleicht gruppenbildung,da ja ansonsten kaum ein unterschied zur haendichen selectierung waere,eine userform wuerde auch den rahmen sprengen :-)))

das obige beispiel geht ueber einen index und namen spielen dabei eigentlich keine rolle

du siehst,es gibt mehrere varianten

so waere es auch moeglich die darstellung in einer spalte wiederzugeben(falls die reiter ausgeblendet sein sollten) und bei mouseclick zu loeschen

gruss nighty

Antwort 6 von speedy71 vom 15.04.2022, 21:01 Options

Hallo nighty,

habe jetzt die Tabelle ein wenig geändert, lasse mir nun die Tabellennamen per VBA auslesen und in der Tabelle 1 ( Eingabe ) in die Spalte D ab der Zeile 5 Eintragen, was ich jetzt erreichen möchte ist das wenn ich den Button hinter der Spalte anklicke eben dieses Tabellenblatt gelöscht wird.


grüße
Achim

Antwort 7 von speedy71 vom 16.04.2022, 09:10 Options

Hallo,

so habe nun meine Problem gelöst, hier nun meine Lösung.

Sub Tabellenblatt_loeschen()
Dim TabName As String
Dim WS As Worksheet
' Tabellenname wird aus Zelle gelesen
TabName = Range("d5")
For Each WS In Worksheets
If WS.Name = TabName Then
WS.Delete
End If
' Die Zelle mit den Namen wird gelöscht
Range("D5").Select
Selection.ClearContents
Next
End Sub

Danke noch einmal die mir dabei Helfen wollten.

grüße
Achim

Antwort 8 von nighty vom 16.04.2022, 09:47 Options

hi achim ^^

hier noch eine variante,die nicht ins leere laeuft :-))

gruss nighty

Sub DeinMakro()
    If SheetExists("" & Cells(5, 4)) = True Then Worksheets("" & Cells(5, 4)).Delete
End Sub  
Public Function SheetExists(strName As String) As Boolean
    On Error Resume Next
    SheetExists = Not Worksheets(strName) Is Nothing
End Function  

Ähnliche Themen

VBA EXCEL Zeile löschen
vollmondgierig  27.10.2008 - 57 Hits - 10 Antworten

Excel VBA: löschen mit Kill findet Datei nicht
Reini0815  31.07.2009 - 506 Hits - 10 Antworten

VBA Erzeugte Datei beim Beenden von Excel löschen
Bierschinken  31.07.2009 - 583 Hits - 7 Antworten

Excel 2003 - VBA - Userform löschen
pesi  15.09.2009 - 365 Hits - 2 Antworten

Module und Makros per VBA im geschütztem Projekt löschen
kvtv  01.03.2010 - 395 Hits - 7 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026