Excel VBA Blattschutz mit Filter und Zeile löschen zulassen?
Hi, ich habe verschiedene Steuerelemente hinterlegt, bei geschütztem Blatt. In meinem Fall hier in Zeile 18 "Zeile einfügen" und in Zeile 6 die Steuerelemente "Alles Anzeigen, A bis F". Wenn ich das Blatt normal schütze, kann ich es so einrichten, dass ich die "Filterfunktion" in Zeile 8 und "Zeile löschen" trotzdem freigeben kann. Wenn ich aber nun das Steuerelement "Zeile einfügen" aktiviere, kann ich danach die Filter nicht mehr auswählen und auch keine Zeile mehr löschen.
Wenn der Bearbeiter also Zeilen mit der Steuerung einfügt, die er zu viel macht oder nicht mehr benötigt, soll er diese Zeilen auch löschen und weiterhin die Filter anwenden können.
Vielleicht kann mir jemand helfen?
2 Antworten
Hallo
Ich weiß nicht, ob es das ist, was du suchst, aber wenn du die Möglichkeit suchst, trotz Blattschutz Zeilen einzufügen:
.Protect AllowInsertingRows:=True
Danke für deine Hilfe, kam mit dem anderen dannnach vielem Ausprobieren klar
Zwei Dinge gilt es aus meiner Sicht zu tun.Bevor irgendwelche Knöpfe gedrückt werden MUSS auf der Seite eine bestehende Filterung zunächst zurückgenommen werden, ggf auch per Makro.
'Autofilter Active on current sheet ? If so, then deactivate the filter
Public Function fnDeActivateAutoFilter(ByVal cWB As String, ByVal cSheet As String)
If Workbooks(cWB).Worksheets(cSheet).AutoFilterMode = True Then
If Workbooks(cWB).Worksheets(cSheet).FilterMode = True Then
Workbooks(cWB).Worksheets(cSheet).ShowAllData
End If
End If
End Function
Dann, wenn das Sheet wieder geschützt wird das Attribut "Autofilter" in der Protect option ebenfalls zulassen.
Hierfür mal den Protect Vorgang aufzeichnen und entsprechend der eigenen Bedürfnisse anpassen.
'Allowing certain actions even if the worksheet is protected
Sheets("Sheet1").Protect Password:="myPassword", _
DrawingObjects:=False, _
Contents:=True, _
Scenarios:=False, _
AllowFormattingCells:=True, _
AllowFormattingColumns:=True, _
AllowFormattingRows:=True, _
AllowInsertingColumns:=False, _
AllowInsertingRows:=False, _
AllowInsertingHyperlinks:=False, _
AllowDeletingColumns:=True, _
AllowDeletingRows:=True, _
AllowSorting:=False, _
AllowFiltering:=True, _
AllowUsingPivotTables:=False
Ich bekomme es leider nicht hin, da ich nicht weiß, wie ich es auch wo einbinden soll. Bei den Actions benötige ich also nur AllowDeletingRows:=True, _ und AllowFiltering:=True, _. Und wie binde ich dies ein? Muss ich dies beim Sub Zeile_Einfügen_1 einbinden oder ist das ein weiterer eigenständiger Sub?
Hi, Dankeschön
Nach einer langen Nacht und vielen Möglichkeiten, die ich ausprobiert habe, konnte ich mit deinem unteren Teil alleine nun alles erledigen
Nochmals Danke
Grüße