ich möchte gerne in einer freigegeben Arbeitsmappe bestimmte Spalten per Klick auf ein Symbol aus- und wieder einblenden können.
Mein Problem ist der Blattschutz in der freigegebenen Arbeitsmappe. Aufgrund meiner bescheidenen VBA-Kenntnisse, weiß ich nicht, an welcher Stelle des jeweiligen Makros ich die Parameter:
ActiveSheet.Protect userInterfaceOnly:=True
und/oder?
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingColumns:=True
setzen muss.
Hier ist mein Makro zum ausblenden:
Sub SpaltenAusblenden()
'---Tabelle "Tischebedarf" aktivieren---
Sheets("Tischebedarf").Activate
'---Trotz Blattschutz AUS- und EINBLENDEN zulassen---
ActiveSheet.Protect userInterfaceOnly:=True
'---Spalten AUSBLENDEN---
Columns("F").EntireColumn.Hidden = True
Columns("H").EntireColumn.Hidden = True
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingColumns:=True
End Sub
Im nicht freigegebenen Modus geht alles und nach dem Einschalten kommt Laufzeitfehler 1004: Anwendungs- oder objektdefinierter Fehler.
Vielen Dank für Eure Hilfe!
Marco
Ich habe hier im Forum schon folgendes gefunden, aber es funktiuoniert bei mir nicht: https://www.herber.de/forum/archiv/668to672/t669193.htm
Hallo Forum,
ich benötige in einem mit Blattschutz vesehenen Arbeitsblatt, das ich zum Bearbeiten für _
mehrere Nutzer freigegeben habe, die Funktion zum Spalten ausblenden.
In nicht freigegebener Arbeitsmappe funktioniert das so:
Sub Radtypen()
'---Tabelle "Übersicht" aktivieren---
Sheets("Übersicht").Activate
ActiveSheet.Unprotect Password:=""
'---Trotz Blattschutz AUS- und EINBLENDEN zulassen---
ActiveSheet.Protect userInterfaceOnly:=True
'---Trotz Blattschutz AUTOFILTER zulassen---
ActiveSheet.EnableAutoFilter = True
'---Bereiche EINBLENDEN---
Columns("A:IV").EntireColumn.Hidden = False
'---Zelle A7 LÖSCHEN---
Cells(1, 7).ClearContents
'---In Zelle A1 "Radtypen" schreiben---
Range("A1").Value = "Radtypen"
'---Zellen AUSBLENDEN---
Columns("D:F").EntireColumn.Hidden = True
Columns("I:I").EntireColumn.Hidden = True
Columns("K:AG").EntireColumn.Hidden = True
Columns("AI:AN").EntireColumn.Hidden = True
Columns("BE:DL").EntireColumn.Hidden = True
'---AUTOFILTER aufrufen---
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
'---FILTERN in Spalte "34" nach Kriterium "4"---
Selection.AutoFilter Field:=34, Criteria1:="=4"
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:=""
End Sub
Hat vielleicht jemand eine Idee, wie man das umgehen kann?
Gruß Lotte
P.S. Das ganze benötige ich außerdem noch für den Autofilter
hallo Lotte,
du mußt vor der Freigabe den Blattschutz so festlegen,daß du das Makro im Freigabemodus
ohne Aufheben des Blattschutzes Ausführen kannst...
für Spalten ein u.Ausblenden z.B.so:
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingColumns:=True
das Aufheben des Blattschutzes im Freigabemodus ist nicht möglich !
gruß Herbert