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

Tabellenblatt per Userform löschen

Tabellenblatt per Userform löschen
19.06.2013 18:22:20
Pascal
Guten Abend
Ich versuche seit längerem ab einer UserForm ein Excel-Tabellenblatt aus der Arbeitsmappe rauszulöschen.
d.h. der User kann auf einer UserForm3 eine Commandbutton betätigen.
dann soll das Tabellenblatt (Name steht in der Variable "Blatt") selektiert und (wenn möglich ohne Gegenfrage) gelöscht werden.
im Anschluss an diese Delete-Funktion soll wieder das Tabellenblatt1 selektiert werden.
Leider schaff ich das mit dem folgenden Code nicht:
Private Sub CommandButton2_Click()
UserForm3.Hide 'zuerst wird UserForm3 wieder geschlossen
Sheets(Blatt).Select
ActiveWindow.SelectedSheets.Delete
Sheets("Tabelle1").Select
End Sub
Bei mir wird zwar das entsprechende Blatt (sofern vorhanden) selektiert. Es erscheint dann aber eine Meldung: "wollen Sie wirklich Tabellenblatt löschen ?)
wenn ich dann auch hier auf Löschen klicke, so wird das Tabellenblatt zwar gelöscht, aber aus mir unbekannten Gründen wieder die UserForm3 angezeigt.
Frage:
wie kann ich das Tabellenblatt ohne weitere Gegenfrage löschen ?
danach soll Userform3 nicht mehr erscheinen, sondern es soll wieder das Tabellenblatt1 selektiert werden.
Besten Dank für Eure Tips!

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt per Userform löschen
19.06.2013 18:33:14
Franc

Private Sub CommandButton2_Click()
UserForm3.Hide
Application.DisplayAlerts = False
Sheets(Blatt).Delete
Application.DisplayAlerts = True
Sheets("Tabelle1").Select
End Sub

AW: Tabellenblatt per Userform löschen
19.06.2013 18:34:48
hary
Hallo
Mit Hide blendest du das Form nur aus, Unload ist schliessen
 Unload Me 'zuerst schliesen
Application.DisplayAlerts = False 'Meldung unterdruecken
Sheets(Blatt).Delete
Sheets("Tabelle1").Select
Application.DisplayAlerts = True

gruss hary

AW: Tabellenblatt per Userform löschen
19.06.2013 18:38:12
Matze
Hallo Pascal,
Private Sub CommandButton2_Click()
UserForm3.Hide 'zuerst wird UserForm3 wieder geschlossen
Sheets("Blattname").Delete
Sheets("Tabelle1").Select
End Sub
Ist in Tabelle1 ein Makro am laufen?
Ansonsten stell die Mappe hier ein, ist so schlecht zu sagen warum das so ist.
Matze

Anzeige
AW: Tabellenblatt per Userform löschen
19.06.2013 18:41:09
Pascal
Hallo zusammen
schon mal herzlichen Dank für die tips die Alerts mal auszuschalten.
werde das gleich mal testen.
feedback folgt sobald möglich hier

zu: Sheets("Blattname").Delete
19.06.2013 18:49:25
Matthias
Hallo Matze
Sheets("Blattname").Delete löscht aber das (wenn vorhandene) Sheet("Blattname").
Außerdem muss Pascal sicherstellen das die Variable(Blatt) nicht zufällig mal "Tabelle1" heißt,
sonst bricht der Code mit IndexFehler ab.
Gruß Matthias

AW: besser? ;-)
19.06.2013 18:58:10
hary
Moin Matthias
So besser?
Option Explicit
Private Sub CommandButton1_Click()
Dim Blatt As String
Blatt = "Tabelle2" 'anpassen
Unload Me 'zuerst schliesen
If SheetExist(Blatt) Then
Application.DisplayAlerts = False
Sheets(Blatt).Delete
Sheets("Tabelle1").Select
Application.DisplayAlerts = True
End If
End Sub
Private Function SheetExist(ByVal sheetName As String, Optional Wb As Workbook) As Boolean
Dim wks As Worksheet
On Error GoTo ERRORHANDLER
If Wb Is Nothing Then Set Wb = ThisWorkbook
For Each wks In Wb.Worksheets
If LCase(wks.Name) = LCase(sheetName) Then SheetExist = True: Exit Function
Next
ERRORHANDLER:
SheetExist = False
End Function

Heissen gruss hary

Anzeige
selbst probiert ? owT
19.06.2013 19:11:09
Matthias

AW: selbst probiert ?
19.06.2013 19:16:20
hary
Moin Matthias
Probiert,nein.
Excel schon geschlossen, bin dabei Codes aus dem Kopf zu schreiben. Sollte eigentlich kein Fehler drin sein. Wenn doch, hau mir auf die Finger.
gruss hary

AW: @Matthias
20.06.2013 06:50:14
hary
Moin Matthias
Nu in der Morgenkuehle hab ich verstanden was du sagen willst.
If Blatt "Tabelle1" then
gruss hary

AW: @Matthias
20.06.2013 07:06:26
Pascal
Hallo Leute!
einen schönen guten Morgen allerseits!
welche eine grossartige Hilfe ich hier erlangte! :-))
wirklich toll!
Ich konnte nun durch einfaches Einbinden von
Application.DisplayAlerts = False
Sheets(Blattname).Delete
Application.DisplayAlerts = True
mein Problem soweit lösen.
Die Variable Blattname kann bei mir übrigens nicht "Tabelle1" heissen.
denn die Variable Blattname wird vorgängig durch fix auswählbare Tabellenblatt-Namen (ab Listbox) gefüllt.
Danke nochmals allen herzlich für die Unterstützung!
Grüsse und einen schönen, kühlen Tag allerseits

Anzeige
noch ein Vorschlag
20.06.2013 07:19:58
Erich
Hi,
auch wenn's schon gelöst ist - hier noch eine Variante:

Option Explicit
Dim Blattname As String
Private Sub CommandButton2_Click()
Blattname = "abc"
Hide
With Application
.EnableEvents = False
If Sheets.Count > 1 Then   ' 1 Blatt muss bleiben
.DisplayAlerts = False
Sheets(Blattname).Delete
.DisplayAlerts = True
End If
Sheets("Tabelle1").Select
.EnableEvents = False
End With
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

AW: noch ein Vorschlag
20.06.2013 07:28:16
hary
Moin Erich
Sollte das letzte .EnableEvents nicht True sein?
gruss hary

Anzeige
au ja, danke, Hary! (Kopierteufel ...) (owT)
20.06.2013 07:37:41
Erich

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige