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

Tab.blätter löschen

Tab.blätter löschen
19.01.2021 08:29:54
Mildred
Guten Morgen zusammen,
ich erstelle gerade ein Formular für Kollegen, das es ihnen ermöglicht, wenn in einem Tabellenblatt in 2 bestimmten Spalte und in 8 verschiedenen Zeilen etwas eingegeben wird 2 vorhandene Tabellenblätter kopiert. Außerdem werden die Namen der kopierten Tabellenblätter geändert und zwar wird der Name angelegt, der in einer bestimmten Spalte und 4 verschiedenen Zeilen eingegeben wurde. Jetzt kann es vorkommen, dass versehentlich ein Tabellenblatt angelegt wird und wieder gelöscht werden soll. Gibt es ein Makro, dass noch nicht erstellte Tabellenblätter löscht?
Dazu muss man wissen, dass ich für die neue Benennung der 2 kopierten Tabellenblätter variablen definieren musste, weil der Name der in der Zelle eingetragen wird, nicht immer 1:1 übernommen werden kann. Im ersten kopierten Tabellenblatt, wird der eingetragene Name nach 30 Zeichen "abgeschnitten", außerdem wird ein Schrägstrich gelöscht, wenn der Name einen Schrägstrich enthält. Bei dem zweiten Tabellenblatt wird der Name bereits nach 25 Zeichen "abgeschnitten", Schrägstiche werden gelöscht und mit dem Wort "ICTP" ergänzt.
Aus diesem Forum hat mir bereits jemand geholfen, einen Code zu erstellen, dass wenn man in den Zellen den Namen entfernt, das Tabellenblatt gelöscht wird und vorher noch eine msgbox angezeigt wird, in der gefragt wird, ob das Tabellenblatt wirklich gelöscht werden soll. Eigentlich ist das eine super Lösung, nur wenn der Kollege versehentlich den Namen entfernt hat und das Tabellenblatt doch nicht löschen möchte, wird das Tabellenblatt zwar nicht gelöscht, aber der Name, der in der Zelle eingetragen wurde, ist weg. Jetzt könnte der Anwender natürlich wieder den Namen neu eintragen, aber dann wird gefragt, ob das Tabellenblatt mit dem Namen angelegt werden soll und das Tabellenblatt existiert ja bereits. Und das möchte ich verhindern.
Weil es etwas schwierig ist, mein Problem zu erklären, habe ich eine Excel Tabelle mit den Makros hochgeladen. Ich will hoffen, dass mein Problem verständlicher wird, wenn ihr die Datei öffnet.
https://www.herber.de/bbs/user/143099.xlsm
Vielen Dank im Voraus für eure Hilfe.
V.G. Mildred

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tab.blätter löschen
19.01.2021 08:32:47
Hajo_Zi
Hallo Mildred;
dass noch nicht erstellte Tabellenblätter löscht?

das geht nicht, da noch nicht erstellt.
weiter habe ich nicht gelesen, da dieses nicht geht.

lass es doch zumindest offen, Hajo .... owT
19.01.2021 08:38:51
Klaus
.
AW: Tab.blätter löschen
19.01.2021 09:54:27
MCO
Hallo Mildred!
Ich hab die Abfrage einfach umgedreht: Wenn das Blatt nicht existiert wird gefragt. Sonst nicht.
Alles andere bleibt.
Damit ist der erste Teil (Für spalte 5):
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Fehler As Integer, ws As Object
Dim exists_bol As Boolean
Dim antwort
If Target.Column = 5 Then
Select Case Target.Row
Case 12, 18, 24, 30
If Not IsEmpty(Target.Cells(1, 1).Value) Then
mstrSheetname = Left(Replace(Target.Cells(1, 1), "/", ""), 30)
For Each ws In ThisWorkbook.Worksheets
If ws.Name = mstrSheetname Then exists_bol = True: Exit For
Next
If exists_bol = False Then _
antwort = MsgBox("Tabelenblatt mit Name """ & Target.Text & """ anlegen ?",  _
_
vbYesNo, "Blatt Vorlage kopieren")
If antwort = vbYes Then
Application.ScreenUpdating = False
With Worksheets("Kalkulationsvorlage")
.Visible = xlSheetVisible
.Copy Before:=Worksheets("Kalkulationsvorlage")
.Visible = xlSheetVeryHidden
End With
ActiveSheet.Name = mstrSheetname
End If
Else
For Each ws In ThisWorkbook.Worksheets
If ws.Name = mstrSheetname Then
If MsgBox("Tabellenblatt mit Name """ & mstrSheetname & """ wirklich lö _
schen ?", vbYesNo) = vbYes Then
Application.DisplayAlerts = False
ws.Delete
End If
Exit For
End If
Next ws
End If
Case Else
End Select
End If
Ich hoffe, damit kommst du weiter...
Gruß, MCO
Anzeige
AW: Tab.blätter löschen
19.01.2021 20:55:31
Manuela
Hallo MCO,
vielen Dank für den Code, das ist eine Lösung. Ich gucke mal, ob ich damit weiterkomme.
V.G. Mildred

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige