Microsoft Excel

Herbers Excel/VBA-Archiv

Tabellenblätter variabel löschen

Betrifft: Tabellenblätter variabel löschen von: Johannes
Geschrieben am: 10.09.2014 10:47:38

Hallo liebes Forum,
ich sitz mal wieder 'fest'. Folgende Situation: Ich habe eine Tabelle in der mehrere Zeilen der Reihe nach ausgefüllt werden. Per VBA wird für jede gefüllte Zeile ein Tabellenblatt angelegt und nach der ersten Zelle benannt. Soweit funktioniert alles einwandfrei. Wenn jetzt Zeilen gelöscht werden möchte ich das beim Aktualisieren die Tabellenblätter auch gelöscht werden die nicht mehr aktuell sind.
Einfacher: Alle Tabellenblätter (außer die 2 Masterblätter) löschen und dann wieder neu generieren.
Hat jemand eine Idee wie ich alle Tabellenblätter bis auf die 2 Masterblätter löschen kann???
Danke für eure Hilfe.
Johannes

  

Betrifft: AW: Tabellenblätter variabel löschen von: yummi
Geschrieben am: 10.09.2014 10:55:53

Hallo Johannes,

entweder beim Löschen der Zeile noch zusätzlich:
z.B. für zeile x (welche Zeile du löschen willst weisst du ja
Worksheets(richtigeSheet.Cells(x, 1).value).Delete

oder wenn du alle löschen willst bis auf deine Master:

function Loeschen()
Dim objBlatt As Worksheet
Application.DisplayAlerts = False
For Each objBlatt In Sheets
    If objBlatt.Name <> "Master1" and objBlatt.Name <> "Master2" Then objBlatt.Delete
Next
Application.DisplayAlerts = True
End function
Gruß
yummi


  

Betrifft: AW: Tabellenblätter variabel löschen von: Christian
Geschrieben am: 10.09.2014 10:56:13

Hallo Johannes,
so zB (Tab-Namen entsprechend anpassen):

Option Explicit

Sub DeleteWorkSheets()
    Dim wks as Worksheet

    Application.DisplayAlerts = False
    For Each wks in ThisWorkbook.WorkSheets
        If wks.Name <> "Master-1" And wks.Name <> "Master-2" Then
            wks.Delete
        End if
    Next
    Application.DisplayAlerts = True
End Sub
Gruß
Christian


  

Betrifft: and? von: Jack_d
Geschrieben am: 10.09.2014 10:59:22

müsste es nicht "or" sein?

Grüße


  

Betrifft: AW: and? von: Johannes
Geschrieben am: 10.09.2014 11:03:37

Funktioniert perfekt! Danke


  

Betrifft: AW: and? von: yummi
Geschrieben am: 10.09.2014 11:06:14

Halo Jack,

wenn du da or nimmst, dann löscht du alles!!!

wenn du auf das sheet master1 kommst dann schlägt der 2. teil der Bedingung zu und du löscht
wenn du auf das sheet master2 kommst dann schlägt der 1. teil der Bedingung zu und du löscht

Demzufolge sind dann alle Tabellenblätter gelöscht

Gruß
yummi


  

Betrifft: Tacho von: Jack_D
Geschrieben am: 10.09.2014 11:13:40

Krieg ich grad nicht aufn Tacho.

Ein blattname kann doch nicht 2 Zustände (Namen) annehmen.
In meiner Logik müsste die frage dann doch eigentlich oder sein.

Vielleicht fehlt mir heut das vba -Gen.😝

Grusse


  

Betrifft: Wenn nicht das eine UND nicht das andere, dann ... von: Christian
Geschrieben am: 10.09.2014 11:21:29

jetzt klarer?
Gruß
Christian


  

Betrifft: macht Sinn von: Jack_d
Geschrieben am: 10.09.2014 11:27:29

Mit einfachen Logiken hatte ich schon immer meine Probleme o.O

Grüße und Danke für die Erläuterung


  

Betrifft: Ja, And ! von: Christian
Geschrieben am: 10.09.2014 11:06:25

Gruß
Christian


  

Betrifft: AW: Besser Select Case von: Daniel
Geschrieben am: 10.09.2014 11:10:05

Hi
wenn mehrere Blätter "verschont" werden sollen, ist Select Case verständlicher als IF-THEN

for each sh in activeworkbook.worksheets
Application.DisplayAlerts = false
select case sh.Name
    Case "Master-1", "Master-2"
    Case else
        sh.delete
end Select
Application.DisplayAlerts = true
Gruß Daniel


  

Betrifft: AW: Tabellenblätter variabel löschen von: Jack_d
Geschrieben am: 10.09.2014 10:57:34

Hallo Johannes

also ich hab ne ne Idee

Sub löschen
dim Arbeitsblatt als Arbeitsblatt
Dim Mappe als Excelmappe

für jedes Arbeitsblatt in dieser Excelmappe
wenn Arbeitsblatt.Name <> Master 1 oder Arbeitsblatt.Name <> Master 2 dann
lösche das Arbeitsblatt
ende wenn
ende Sub
Grüße


  

Betrifft: AW: Tabellenblätter variabel löschen von: Johannes
Geschrieben am: 10.09.2014 11:03:07

Danke danke danke! Hab´s anhand Christians Lösungsvorschlag umgesetzt! Klappt perfekt!!!


 

Beiträge aus den Excel-Beispielen zum Thema "Tabellenblätter variabel löschen"