AW: Funktion für bestimme Ws ausführen.
01.02.2021 15:37:19
Jacek
Hallo Daniel,
nun habe ich es folgendermaßen eingebaut:
Sub Blattschutz()
Dim i As Integer
Dim ws(1 To 20) As Worksheet
Set ws(1) = Worksheets("Hofer-Ranks")
Set ws(2) = Worksheets("AUS-Ranks")
Set ws(3) = Worksheets("AO-Ranks")
Set ws(4) = Worksheets("DE-Ranks")
Set ws(5) = Worksheets("CRI-Ranks")
Set ws(6) = Worksheets("GSIB-Ranks")
Set ws(7) = Worksheets("UK-Ranks")
Set ws(8) = Worksheets("US-Ranks")
For i = 1 To 8
ws(i).EnableAutoFilter = True
ws(i).Cells.Locked = False
ws(i).Range("B2:N400").Locked = True
ws(i).Range("B2:N400").FormulaHidden = True
'.EnableAutoFilter = True 'lässt den Autofilter trotz Blattschutz zu
If ws(i).Range("B1:N1").AutoFilter = False Then
ws(i).Range("B1:N1").AutoFilter
End If
ws(i).Protect userinterfaceonly:=True, Password:="GBC1"
Next i
End Sub
Ich habe folgendes festgestellt:
Lasse ich es durchlaufen, wird der Filter überall gesetzt & der Blattschutz funktioniert.
Lasse ich es nochmals durchlaufen, erkennt meine if-Schleife nicht ob der Filter gesetzt ist.
Demnach wird der Autofilter wieder entfernt.
Eine Idee woran das liegen könnte?
Habe es mit
If Not ws(i).Range("B1:N1").AutoFilter Then
und
If ws(i).Range("B1:N1").AutoFilter = False Then
versucht.
Darüberhinaus habe ich festgestellt, dass wenn ich das jeweilige Arbeitsblatt in einer neuen Datei via VBA speichere mein Blattschutz flöten geht.
Baue ich dann nochmal einen Blattschutz ein, ist beim Öffnen der Datei jeweils der Autofilter geblockt. Beispielhafter Auszug für ein Blatt:
Sub SaveRanks()
Application.ScreenUpdating = False
Dim Datum As String
Datum = Format(Now, "mm_yyyy")
Sheets("Hofer-Ranks").Copy
ActiveWorkbook.SaveAs Filename:= _
"G:\GBC General\NeTr\Ranking_TEST\" & Sheets("Hofer-Ranks").Name & "_" & Datum & ".xlsx" _
BlattschutzSave
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
und natürlich zugehörig
Sub BlattschutzSave()
With ActiveSheet
If Not AutoFilterMode = True Then
.EnableAutoFilter = True
End If
Cells.Select
Selection.Locked = False
Selection.FormulaHidden = False
Range("B2:N400").Select
Selection.Locked = True
Selection.FormulaHidden = False
.Protect userinterfaceonly:=True, Password:="GBC1"
End With
End Sub
Ich habe echt noch einige Baustellen :D
Ich suche auch viel im Forum. Aber finde nicht immer die passende Lösung.
Mal sehen, wann ich zu den darauffolgenden Features komme :D
Hab noch bisschen was vor :D
Gruß Jacek