Ich habe folgendes Problem:
Ich habe mir einen Code aus diversen Beiträgen, dem Makrorekorder und ein bisschen Glück zusammengestellt. Er funktioniert wunderbar, jedoch sollte er nicht nur auf eine Tabelle, sondern auf insgesamt sechs Tabellen angewandt werden. Der Code sieht wie folgt aus:
Code:
*****************************************************************************
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Tabelle1.Unprotect Password:="123"
If Tabelle1.FilterMode Then Tabelle1.ShowAllData
Tabelle1.Range("A1").AutoFilter field:=1, _
Criteria1:=Array("A", "F", "V", "E", "B"), Operator:=xlFilterValues
Tabelle1.AutoFilter.Sort.SortFields.Clear
Tabelle1.AutoFilter.Sort.SortFields.Add Key:=Range( _
"E1:E538"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With Tabelle1.AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Dim WS As Worksheet
For Each WS In ThisWorkbook.Sheets
If Not WS.ProtectContents Then
WS.Protect DrawingObjects:=True, _
Contents:=True, _
Scenarios:=True, _
AllowFiltering:=True, _
Password:="123"
End If
Next
End Sub
*****************************************************************************Kurze Erklärung zum Code:
Schritt 1: Passwortschutz aufheben
Schritt 2: Filter löschen
Schritt 3: Filter setzen
Schritt 4: Aufsteigend sortieren
Schritt 5: Passwort setzen
Schritt 6: Arbeitsmappe wird geschlossen
Problem:
Wie im Code zu sehen ist, wird der Code nur bei der Tabelle 1 ausgeführt. Das Problem ist jedoch, dass ich insgesamt sechs identische Tabellen besitze. Es ist zwar möglich, dass ich den Code 6 mal kopiere und für jede Tabelle einfüge, jedoch ist dies eine ziemlich unsaubere Lösung und das Schließen selbst dauert auch lange.
Nun zu meiner Frage:
Kann man dies auch mittels einer Schleife wie beim Passwort setzen bewältigen, oder gibt es noch eine andere Lösung?
Vielen Dank im Voraus!!
Mit freundlichen Grüßen
MBie