Autor
|
Thema: Tabellenblätter zwischen Tabelle A und Tabelle Z löschen (264 mal gelesen)
|
casino68 Mitglied
Beiträge: 4 Registriert: 12.12.2008
|
erstellt am: 13. Jan. 2009 18:48 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, für einen Profi ist mein Problem sicher nur Kleinkram... Ich brauche ein Makro, welches die Tabellenblätter ZWISCHEN z.B. Tabelle A und Tabelle Z löscht. Am besten ohne Sicherheitsabfrage... danke erst mal...
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur
Beiträge: 7085 Registriert: 13.01.2004 ich hab eh keine Probleme damit...
|
erstellt am: 13. Jan. 2009 18:54 <-- editieren / zitieren --> Unities abgeben: Nur für casino68
|
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 13. Jan. 2009 19:02 <-- editieren / zitieren --> Unities abgeben: Nur für casino68
aha, soll das Makro den Anwender ein Auswählfenster aufzeigen, ala von bis? Soll das Makro den Anwender überprüfen, das eventuell bei Auswahl Blatt A-E a,b,bb,c,d,e, das Blatt bb auch mit gelöscht wird? Oder reicht auch ein einfaches Shift+ Reiter des Erstes Tabellenblatt und Reiter des Letzten Tabellenblatt (die dazwischenliegenen werden mit markiert) und anschliessend RMT und löschen aus? Alternativ verwendet man STRG um einzel & gezielt auszuwählen, um dann die entsprechenden Blätter zu löschen.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
casino68 Mitglied
Beiträge: 4 Registriert: 12.12.2008
|
erstellt am: 13. Jan. 2009 19:04 <-- editieren / zitieren --> Unities abgeben:
hi Thomas, spricht nichts dagegen. Vielleicht bin ich auch nur ein Automatisationsfetischist Es handelt allerdings um ca. 350 Tabellenblätter, die nach dem "bearbeiten" nicht mehr benötigt werden. Da ich die Datei jedoch noch öfters öffnen muss, dauert es mit ca. 27 mb Dateigröße doch etwas länger. Wenn ich die nicht mehr benötigten... ich nenne sie mal "Vorgabeblätter" lösche, reduziere ich die Datei auf 4 mb. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
casino68 Mitglied
Beiträge: 4 Registriert: 12.12.2008
|
erstellt am: 13. Jan. 2009 19:07 <-- editieren / zitieren --> Unities abgeben:
soll das Makro den Anwender ein Auswählfenster aufzeigen, ala von bis? Soll das Makro den Anwender überprüfen, das eventuell bei Auswahl Blatt A-E a,b,bb,c,d,e, das Blatt bb auch mit gelöscht wird? Oder reicht auch ein einfaches Shift+ Reiter des Erstes Tabellenblatt und Reiter des Letzten Tabellenblatt (die dazwischenliegenen werden mit markiert) und anschliessend RMT und löschen aus? Alternativ verwendet man STRG um einzel & gezielt auszuwählen, um dann die entsprechenden Blätter zu löschen.[/B][/QUOTE] Auswählfenster sind keine notwendig die zu löschenden Blätter befinden sich immer zwischen zwei "Dummiblättern" mit gleichbleibenden Namen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 13. Jan. 2009 20:16 <-- editieren / zitieren --> Unities abgeben: Nur für casino68
... Code: Sub delsheets() 'Tabellen die nicht in der Liste sind entfernen Dim Arr_wks() Dim wks As Worksheet Dim i As Integer Dim hau_weg As BooleanArr_wks = Array("hugo", "autsch", "zeit", "macro") 'Liste der Tabellen die <NICHT> gelöscht werden sollen For Each wks In ThisWorkbook.Worksheets For i = LBound(Arr_wks) To UBound(Arr_wks) If wks.Name <> Arr_wks(i) Then hau_weg = True Else hau_weg = False Exit For End If Next i If hau_weg = True Then wks.Visible = xlSheetVisible Application.DisplayAlerts = False 'löschen ohne Nachzufragen wks.Delete Application.DisplayAlerts = True End If hau_weg = False Next wks 'nächste Tabelle 'ThisWorkbook.Save 'Datei speichern End Sub
Code:
Sub deldummy() 'Tabellen dummy-A until Dummy-E == \dev\null Dim Arr_wks() Dim wks As Worksheet Dim i As Integer Dim hau_weg As BooleanArr_wks = Array("dummy-anfang", "dummy-ende") 'Start-End hau_weg = False For Each wks In ThisWorkbook.Worksheets For i = LBound(Arr_wks) To UBound(Arr_wks) If wks.Name = Arr_wks(0) Then hau_weg = True Else If wks.Name = Arr_wks(1) Then hau_weg = False wks.Visible = xlSheetVisible Application.DisplayAlerts = False 'löschen ohne Nachzufragen wks.Delete Application.DisplayAlerts = True End If Exit For End If Next i If hau_weg = True Then wks.Visible = xlSheetVisible Application.DisplayAlerts = False 'löschen ohne Nachzufragen wks.Delete Application.DisplayAlerts = True End If Next wks 'nächste Tabelle 'ThisWorkbook.Save 'Datei speichern End Sub
90-9-1-Regel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
casino68 Mitglied
Beiträge: 4 Registriert: 12.12.2008
|
erstellt am: 14. Jan. 2009 07:09 <-- editieren / zitieren --> Unities abgeben:
|