Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
604to608
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
604to608
604to608
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Bestimmte Tabellenblätter löschen
30.04.2005 17:02:09
KH
Hallo!
Wenn ich ein bestimmtes Makro ausführe muss der Benutzer eine Objektnummer eingeben. Excel soll dann alle Tabellenblätter löschen, die diese Nummer in Ihrem Namen beinhalten. Wie kann ich das am Einfachsten machen?
Gruß,
KH

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestimmte Tabellenblätter löschen
30.04.2005 17:09:26
Ramses
Hallo
Option Explicit

Sub Kill_Object_Table()
Dim i As Integer
Dim srcObj As String, tmpDel As String
srcObj = InputBox("Bitte Objectnummer eingeben:", "Tabellen mit Objectnummer löschen", "")
If srcObj = "" Then
MsgBox "Keine Objectnummer", vbInformation + vbOKOnly, "Abbruch"
Exit Sub
End If
tmpDel = ""
For i = Worksheets.Count To 1 Step -1
If InStr(1, Worksheets(i).Name, srcObj) > 1 Then
Application.DisplayAlerts = False
tmpDel = tmpDel & Worksheets(i).Name & Chr$(13)
Worksheets(i).Delete
Application.DisplayAlerts = True
End If
Next i
If tmpDel <> "" Then
MsgBox "Folgende Tabellen wurden gelöscht: " & Chr$(13) & tmpDel
Else
MsgBox "Keine Tabelle mit Objectnummer: " & srcObj & " gefunden! "
End If
End Sub

Gruss Rainer
Anzeige
...Besser so. Ist sicherer :-)
30.04.2005 17:14:40
Ramses
Hallo

Sub Kill_Object_Table_Secure()
Dim i As Integer, Qe As Integer
Dim srcObj As String, tmpDel As String
srcObj = InputBox("Bitte Objectnummer eingeben:", "Tabellen mit Objectnummer löschen", "")
If srcObj = "" Then
MsgBox "Keine Objectnummer", vbInformation + vbOKOnly, "Abbruch"
Exit Sub
End If
tmpDel = ""
For i = Worksheets.Count To 1 Step -1
If InStr(1, Worksheets(i).Name, srcObj) > 1 Then
tmpDel = tmpDel & Worksheets(i).Name & Chr$(13)
End If
Next i
If tmpDel <> "" Then
Qe = MsgBox("Ihr Suchbegriff lautet: " & srcObj & Chr$(13) & _
"Folgende Tabellen werden gelöscht: " & Chr$(13) & tmpDel, vbQuestion + vbYesNo, "Löschen bestätigen")
Else
MsgBox "Keine Tabelle mit Objectnummer: " & srcObj & " gefunden! "
Exit Sub
End If
If Qe = vbYes Then
For i = Worksheets.Count To 1 Step -1
If InStr(1, Worksheets(i).Name, srcObj) > 1 Then
Application.DisplayAlerts = False
Worksheets(i).Delete
Application.DisplayAlerts = True
End If
Next i
Else
MsgBox "Es werden keine Tabellen gelöscht"
End If
End Sub

Gruss Rainer
Anzeige
AW: Geht noch nicht ganz
30.04.2005 17:31:36
KH
Hallo!
Danke, klappt am Anfang auch noch wunderbar. Er listet mir alle Tabellenblätter auf, die gefunden und gelöscht werden können. Nur leider wird dann bei jedem Klick auf OK nur eines der Tabellenblätter gelöscht. Beim nächsten Mal durchführen wird wieder nur eines gelöscht.
Gruß,
KH
Klar geht das...
30.04.2005 17:37:42
Ramses
Hallo
Tut mir leid.
Aber das Makro funktioniert einwandfrei.
Es gibt auch keinen OK-Button zum bestätigen von einzelnen LöschAktionen
Wenn du auf OK klickst, läuft die innere I-Schleife los und löscht alles was vorher aufgelistet wurde,... und zwar ohne Rückfrage.
Ich weiss nicht, wo du das Makro eingebaut hast, so wie ich es geschrieben habe tut es.
Gerade nochmal getestet mit 30 Tabellen.
Die waren nach "Ja" alle weg.
Gruss Rainer
Anzeige
AW: Klar geht das...
30.04.2005 17:45:58
KH
Hi!
Weiß auch nicht, was bei mir los war. In einer anderen Datei ging es jetzt und in derjenigen, wo ich es zuerst probiert hatte geht es jetzt auch einwandfrei.
Vielen Dank für die Mühe!
Gruß,
KH
AW: ...Besser so. Ist sicherer :-)
30.04.2005 17:33:41
Gunnar
Hi,
ein Blatt muss bleiben, dein Code versucht u.U. alle Blätter zu löschen.
mfg Gunnar

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige