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

VBA die letzten Blätter löschen

VBA die letzten Blätter löschen
04.02.2022 07:50:08
P.
Hallo liebe Leute,
ich stehe vor einer kleinen Herausforderung.
Ich benutze einen Code:
>

Sub gruppe1()
For n = 7 To 11
Sheets("bbmuster").Select
ThisWorkbook.Worksheets("bbmuster").Copy After:=ThisWorkbook.Sheets(Sheets.Count)
Sheets("Gruppeneinteilung").Select
Name = Range("B" & n).Text
Sheets("bbmuster (2)").Select
Sheets("bbmuster (2)").Name = Name
Next n
Dim DateiName As String
Dim bytTab As Byte
Dim arrTabs
Dim strPath As String
Dim wksTab As Worksheet
strPath = Application.ActiveWorkbook.Path
ReDim arrTabs(10 To 14)
For bytTab = 10 To 14
arrTabs(bytTab) = Worksheets(bytTab).Name
Next bytTab
Worksheets(arrTabs).Copy
With ActiveWorkbook
For Each wksTab In Worksheets
If .Worksheets(wksTab.Name).Shapes.Count > 0 Then .Worksheets(wksTab.Name).Shapes(1).Delete
Next wksTab
Application.DisplayAlerts = False
.SaveAs Filename:=strPath & "\Gruppe1.xlsx", FileFormat _
:=xlOpenXMLWorkbook, CreateBackup:=False
Application.DisplayAlerts = True
End With
End Sub
dieser Code erstellt aus einer Vorlage (bbmuster) neue Tabellenblätter, speichert diese immer "am Ende" und entnimmt den Namen, für jedes einzelne Blatt, aus 5 festgelegten Zeilen.
Es ist immer Blatt 10 - 14 was neu erzeugt wird.
Danach speichtert dieser die neu erzeugten 5 Tabellenblätter in einer eigenständigen Datei.
Jetzt möchte ich gerne in der alten Datei, direkt nach der Speicherung, diese 5 letzten Tabellenblätter (Blatt 10 - 14) wieder löschen und verhindern, dass die neu erzeugte Datei geöffnet wird. Diese Ergänzung des Codes fehlt mir noch.
Hoffentlich waren das ausreichende Informationen?
Ich würde mich rieseig freuen, wenn jemand einen Lösungsansatz für mich hätte.
Vielen Dank und einen super Start in den Tag wünsche ich euch :)
Liebe Grüße Patrick

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA die letzten Blätter löschen
04.02.2022 08:59:22
Oberschlumpf
Hi,
versuch mal (ungetestet)

Sub Test()
Dim liSh As Integer
Application.DisplayAlert = False
For liSh = 1 To 5
Sheets(Sheets.Count).Delete
Next
Application.DisplayAlert = True
End Sub
Nach meiner Vorstellung wird mit dem Befehl Sheets(...).Delete immer das jeweils letzte Blatt in der Tabelle gelöscht - und das Ganze wird 5x durchgeführt, so dass am Ende immer die letzten 5 Blätter gelöscht sind.
Hilfts?
Ciao
Thorsten
AW: VBA die letzten Blätter löschen
04.02.2022 09:19:55
P.
Also die Formel sieht mit dem Zusatz so aus:
Sub gruppe1() For n = 7 To 11 Sheets("bbmuster").Select ThisWorkbook.Worksheets("bbmuster").Copy After:=ThisWorkbook.Sheets(Sheets.Count) Sheets("Gruppeneinteilung").Select Name = Range("B" & n).Text Sheets("bbmuster (2)").Select Sheets("bbmuster (2)").Name = Name Next n Dim DateiName As String Dim bytTab As Byte Dim arrTabs Dim strPath As String Dim wksTab As Worksheet strPath = Application.ActiveWorkbook.Path ReDim arrTabs(10 To 14) For bytTab = 10 To 14 arrTabs(bytTab) = Worksheets(bytTab).Name Next bytTab Worksheets(arrTabs).Copy With ActiveWorkbook For Each wksTab In Worksheets If .Worksheets(wksTab.Name).Shapes.Count > 0 Then .Worksheets(wksTab.Name).Shapes(1).Delete Next wksTab Application.DisplayAlerts = False .SaveAs Filename:=strPath & "\Gruppe1.xlsx", FileFormat _ :=xlOpenXMLWorkbook, CreateBackup:=False Application.DisplayAlerts = True End With Application.DisplayAlert = False Dim liSh As Integer For liSh = 1 To 5 Sheets(Sheets.Count).Delete Next Application.DisplayAlert = True End Sub >
Es kommt die Fehlermeldung, das diese Methode nicht unterstützt wird. Lösche ich die Zeile
Application.DisplayAlert = False
löscht er die Tabellenblätter, nach Bestätigung für jedes einzelne Blatt, auf der neu erstellten Arbeitsmappe.
Es geht aber definitiv schonmal in die richtige Richtung!
Danke schonmal für die super schnelle Antwort.
Herzliche Grüße
Patrick
Anzeige
AW: VBA die letzten Blätter löschen
04.02.2022 09:35:10
Oberschlumpf
das, was du als "Formel" bezeichnest, ist VBA-Code - Formeln sind das, was normalerweise direkt in den Zellen einer Tabelle steht und mit "=" beginnt.
änder die fehlerhaften Zeilen durch

application.DisplayAlerts = False bzw True
Ich hatte das "s" bei Alert vergessen.
Dieser Befehl mit ... = False sorgt dafür, dass eben nicht vor jedem Löschvorgang einer Tabelle die Frage erscheint, ob wirklich gelöscht werden soll.
Hilfts?
AW: VBA die letzten Blätter löschen
04.02.2022 09:47:49
P.
Tut mir leid für das "Formel" ich hatte da nicht drüber nachgedacht für einen Moment.
Also erstmal - Ja es löscht die Blätter ohne Nachfrage aber es löscht die Blätter in der neu erstellten Arbeitsmappe - nicht in der Alten, wo ich sie eigentlich weg haben möchte.
Danke dir recht herzlich für die bisherige Hilfe! :-)
Herzliche Grüße
Anzeige
AW: VBA die letzten Blätter löschen
04.02.2022 09:51:27
Oberschlumpf
ups...recht haste...ich hatte den extra fetten Hinweis "neu erstellten Arbeitsmappe" übersehen :-)
Ok, dann zeig mal bitte per Upload eine Bsp-Datei mit Bsp-Daten und deinem Code.
Ohne Datei mag ich jetzt nicht nur theoretisch im Kopf deinen Code Zeile für Zeile überdenken.
Ciao
Thorsten
AW: VBA die letzten Blätter löschen
04.02.2022 10:07:23
Michael
Und wenn das nicht hilft statt

Sheets(Sheets.Count).Delete

ThisWorkbook.Sheets(Sheets.Count).Delete
VG
Michael
AW: VBA die letzten Blätter löschen
04.02.2022 10:20:22
P.
Hey danke für die schnelle Antwort!
Bei dieser Variante löscht es die Blätter 5 - 9 nicht aber 10 -14
Es wird aber tatsächlich imn der Ursprungsmappe gelöscht und nicht in der neuen.
Ganz liebe Grüße
Anzeige
AW: VBA die letzten Blätter löschen
04.02.2022 11:38:19
Michael
Ich Depp,
... :

ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Delete
Welche löscht er nun?
Grüße
Michael
AW: VBA die letzten Blätter löschen
04.02.2022 14:39:37
P.
SUPER, danke Thorsten und Michael! Das hat geklappt. Ich freue mich =))
1000 Dank für eure Hilfe!
Herzliche Grüße
Patrick
AW: VBA die letzten Blätter löschen
04.02.2022 10:42:45
P.
Ok, mache ich!
https://www.herber.de/bbs/user/150868.xlsm
Wichtig sind nur die beiden letzten Blätter "Gruppeneinteilung" und "bbmuster".
In der Gruppeneinteilung stehen Namen und daneben ist eine Schaltfläche, die, bei betätigung, diese Gruppe in einer neuen Datei erstellen soll nach der Vorlage "bbmuster".
Die Tabellenblätter mit den Namen der Personen werden sozusagen in der Ursprungsdatei erstellt, dann in eine eigene Datei für die Gruppe kopiert und sollen danach in der Ursprungsdatei wieder gelöscht werden, sodass ich die nächste Gruppe anlegen kann.
In der Datei arbeite ich derzeit nur an dem Code für Gruppe 1. Wenn der dann funktioniert übernehme ich den für die anderen Gruppen (mit Anpassungen versteht sich).
Das ist jedenfalls der Plan.
Tausend Dank bis hier her schonmal!
Anzeige
AW: VBA die letzten Blätter löschen
04.02.2022 10:03:56
Michael
Hi,
was passiert denn, wenn Du nach

.SaveAs ...

.Close
schreibst. Dann ist die neue Datei zu und der Code sollte die richtige Datei erwischen.
Grüße
Michael

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige