Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Gliederung, Filter und Spalten bearbeiten bei Blattschutz
#1
Moin, Moin Zusammen,

ich bin neu hier und hoffe Ihr könnt mir helfen.
Das Thema ist nicht neu, ich weiß, nur habe ich eine Verkettung von mehreren "Problemen".
Ich habe eine Datei mit mehreren Tabellen. Dies habe ich als Vorlage erstellt, damit meine Kollegen diese nutzen und befüllen können.
Nun enthält diese unheimlich viele Formeln und Verknüpfungen und deshalb sind die meisten Tabellen mit dem Blattschutz versehen, 2 davon sogar mit Passwort.
Nun mein Wunsch. Ich möchte natürlich das alle Tabellen bearbeitet werden können mit Gliederungen, Filtern, Sortieren, Einfügen, Ausblenden, nur nichts löschen.
Nun habe ich mir aus Euerm Forum diese VBA Code´s rausgesucht.

Sub Workbook_Open()
'für alle Blätter ohne Passwortschutz
Dim ws As Worksheet
For Each ws In Worksheets
    ws.Protect userinterfaceonly:=True
    ws.EnableAutoFilter = True 'ermöglicht Autofilter
    ws.EnableOutlining = True 'ermöglicht Gruppierung/Gliederung
Next ws
End Sub

Sub Workbook_Open()
 'für alle Blätter mit Passwortschutz
 Dim ws As Worksheet
 For Each ws In Worksheets
 ws.Protect userinterfaceonly:=True, Password:="xxxxx" 'Passwort anpassen
 ws.EnableAutoFilter = True 'ermöglicht Autofilter
 ws.EnableOutlining = True 'ermöglicht Gruppierung/Gliederung
Next ws
End Sub

Leider bekomme ich es nicht hin, das die erlaubten Änderungs- und Bearbeitungsmöglichkeiten beim Blattschutz enthalten bleiben und vor allem die Kombination mit und ohne Passwort.
Ich hoffe ich habe mich verständlich ausgedrückt.
Hat jemand eine Idee?
Antworten Top
#2
Hallo,

ich weiß nicht, ob ich Dein Problem richtig verstanden habe, aber Folgendes ist mir aufgefallen:

Zitat:Sub Workbook_Open()
'für alle Blätter ohne Passwortschutz
...
...

End Sub


Sub Workbook_Open()
 'für alle Blätter mit Passwortschutz
...
...

End Sub

Excel kann nicht zwei gleichnamige Makros verkraften. Hättest Du oben Im Modul "Option Explicit" eingesetzt,
Hätte Excel das auch mit einer Fehlermeldung auf "Mehrdeutige Namen" geahndet.

Lösung: entweder in ein Makro integrieren oder ein Makro umbenennen.
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#3
Hallo,

hier die Syntax, wie es geht:


Code:
For Each ws In Worksheets
 ws.Protect Password:="xxxxx", AllowFiltering:=True, userinterfaceonly:=True    'Passwort anpassen
Next ws


Das, was Du zulassen oder ausschließen möchtest, kannst Du am besten aufzeichnen. Dann hast Du die Schlüsselwörter.
Gruß Atilla
Antworten Top
#4
Moinsen Ihr Zwei,

danke für die Antworten und Tipp´s.
Nur ist mein Excellatain schon etwas begrenzt. Sprich alles was mit Makros und VBA´s zu tun hat. Ich kann zwar so etwas reinkopieren und das hat bis dato auch gereicht und ein Makro aufzeichnen, wenn ich mehrere gleich Dateien mit den selben Schritten bearbeiten möchte, schaffe ich auch noch. Aber den VBA so umzugestalten das eben beides geht, sprich bei den Tabellen mit Blattschutz und mit Passwort und bei denen mit Blattschutz aber ohne Passwort, die angeführten Aktionen, das ist mein Problem.
Wie vorne beschrieben hatte ich beide Code´s in "Diese Arbeitsmappe" eingegeben, mit dem Resultat einer Fehlermeldung. Gebe ich nur einen davon ein, funktioniert es auch nur bei den entsprechenden Tabellen(mit oder ohne Passwort), aber auch nur die Gliederung und das Filtern, der Rest auch nicht.
Ich hoffe ihr könnt mein Problem nun etwas besser verstehen.
Danke schon jetzt für Eure Hilfe.
Antworten Top
#5
Hallo,

zeichne den Blattschutz auf und stell den Code hier ein. Das er dann in allen Tabellen arbeiten soll kann schnell drum herum gebaut werden.

Starte den Makrorecorder und ruf' Blattschutz auf.
Dort setzt Du Deine Häkchen oder nimmst sie raus.

Dann den aufgezeichneten Code hier einstellen.
Gruß Atilla
Antworten Top
#6
Moin, Moin Attila,

anbei das Makro

Sub Makro1()
'
' Makro1 Makro
'
'
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingCells:=True, AllowFormattingColumns:=True, _
        AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
        :=True, AllowSorting:=True, AllowFiltering:=True
    ActiveSheet.EnableSelection = xlNoRestrictions
End Sub

Das soll, wie schon beschrieben, auf allen Seiten möglich sein, auch wenn der Blattschutz enthalten ist. Wenn das funktioniert kann ich auch alle Tabellen mit dem "Blattschutz mit Passwort" versehen, dann passt auch der eine VBA, oder?

Danke
Antworten Top
#7
Hallo Veit,

wenn Du das Makro etwas erweiterst, kannst Du es über alle Blätter laufen lassen. Zuerst musst DU den Blattschutz raus nehmen und dann mit den neuen Einstellungen setzen. Wenn Du ein Passwort drin hast, musst Du das noch beim deaktivieren einsetzen.

Sub Makro1()
'
' Makro1 Makro
'
'
For each blaetter in thisworkbook.sheets
blaetter.unprotect
blaetter.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
:=True, AllowSorting:=True, AllowFiltering:=True
blaetter.EnableSelection = xlNoRestrictions
next
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Veit
Antworten Top
#8
Moin, Moin André,

ich bin wirr, liegt aber vielleicht auch an dem Wetter.
Also ich habe jetzt Dein Makro kopiert und in mein Modul 1 eingefügt. Dann habe ich die entsprechenden Berechtigungen beim Blattschutz vorgegeben und alles gespeichert. Leider funktioniert es nicht.
Hat das was mit meinen beiden "Gliederungen und Ein+Ausblenden" zu tun, siehe oben? Oder wo muss ich das Makro eingeben und wie muss ich es danach speichern?
Danke für Eure Unterstützung. (und das sogar am Vattertag, Hut ab :).
Antworten Top
#9
Hallo Veit,

da ich inzwischen Opa bin, ist das mit dem Vatertag nicht ganz so schlimm Smile
Also, das Makro gehört in ein Modul, das ist ok. Die Frage wäre jetzt, was nicht funktioniert.

Ich habe jetzt nur gesehen, dass Du am Anfang noch diese Zeile dabei hattest
ws.EnableOutlining = True 'ermöglicht Gruppierung/Gliederung
Die müsste bei Bedarf noch dazu, allerdings mit blaetter davor:
blaetter.EnableOutlining = True 'ermöglicht Gruppierung/Gliederung
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#10
Moin, Moin André,

ich habe nun Dein Makro genommen, die eine Zeile dazu gefügt und in das Modul1 kopiert (anbei), nach dem ich bei allen Blättern den Blattschutz raus genommen habe. Danach gespeichert und geschlossen. Die einzelnen Blätter habe ich nicht noch einmal bearbeitet. Nach dem öffnen funktionierte es nicht (was das Makro bewirken sollte) und die 2 Tabellen in denen ich es wollte hatten kein Kennwortblattschutz. Dann habe ich die Datei erneut geöffnet und bei den beiden Blättern das Kennwort und die entsprechenden Aktivitäten vorgegeben und gespeichert.

Nun funktioniert nach wie vor die Gliederung und Filterung in den Blättern ohne Kennwortblattschutz aber alles was Dein Makro bewirken sollte funktioniert nicht. Bei den 2 Blättern mit Kennwortblattschutz funktioniert gar nichts. Dann noch das Problem, das ich beim öffnen der Datei 3x nach dem Kennwort gefragt werde, was ich auch nicht möchte, denn ich muss jedes Mal diese Frage mit Abbrechen beantworten.

In "DieseArbeitsmappe" ist nach wie vor das VBA ohne Blattschutz, s.Anfang der Unterhaltung.

Im Modul2 ist ein weiteres Makro, s. anbei.

Was kann ich nun tun? Alles wegschmeißen?

Gruß
Veit

Sub Makro1()
'
' Makro1 Makro
'
'
For Each blaetter In ThisWorkbook.Sheets
blaetter.EnableOutlining = True 'ermöglicht Gruppierung/Gliederung
 blaetter.Unprotect
 blaetter.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
 , AllowFormattingCells:=True, AllowFormattingColumns:=True, _
 AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
 :=True, AllowSorting:=True, AllowFiltering:=True
 blaetter.EnableSelection = xlNoRestrictions
Next
End Sub




Sub BereichLöschen()
With Worksheets("ERisk Preise ")
    .Range(.Cells(4, 3), .Cells(9, 10)).ClearContents
    .Range(.Cells(11, 3), .Cells(16, 10)).ClearContents
    .Range(.Cells(18, 3), .Cells(23, 10)).ClearContents
    .Range(.Cells(25, 3), .Cells(30, 10)).ClearContents
    .Range(.Cells(32, 3), .Cells(37, 10)).ClearContents
    .Range(.Cells(39, 3), .Cells(44, 10)).ClearContents
    .Range(.Cells(46, 3), .Cells(2439, 10)).ClearContents
    .Range(.Cells(4, 14), .Cells(9, 21)).ClearContents
    .Range(.Cells(11, 14), .Cells(16, 21)).ClearContents
    .Range(.Cells(18, 14), .Cells(23, 21)).ClearContents
    .Range(.Cells(25, 14), .Cells(30, 21)).ClearContents
    .Range(.Cells(32, 14), .Cells(37, 21)).ClearContents
    .Range(.Cells(39, 14), .Cells(44, 21)).ClearContents
    .Range(.Cells(46, 14), .Cells(2438, 21)).ClearContents
   
End With
End Sub
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste