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.

Befehl "Sortierung" bei Blattschutz über VBA
#1
Hallo zusammen, 

habe ein VBA Problem und hoffe, dass mir jemand weiterhelfen kann.
Und zwar habe ich in einer Exceldatei einen Blattschutz über VBA eingepflegt (siehe unten). Autofilter und Gruppierung funktionieren soweit, 
jedoch bekomme ich nicht den korrekten Code zustande, die entsprechende Liste auch sortieren zu können.
Im Netz habe ich mehrere Befehle gefunden, funktionieren jedoch nicht. Hat jemand evtl. noch eine Idee, wie´s klappen könnte?


Sub Workbook_Open()

'für alle Blätter mit Passwortschutz
 
Dim ws As Worksheet
For Each ws In Worksheets
    ws.Protect userinterfaceonly:=True, Password:="blablabla" 'Passwort anpassen
    ws.EnableAutoFilter = True 'ermöglicht Autofilter
    ws.EnableOutlining = True 'ermöglicht Gruppierung/Gliederung
    ???                        = True 'ermöglicht Sortierung

Next ws
End Sub



Grüße Christoph  21
Antworten Top
#2
Moin!
Die Worksheet.Protect-Methode [Klick] kennt den Parameter AllowSorting:=True

Gruß Ralf

Nachtrag:
Folgendes muss gewährleistet sein:

Zitat:Mit True können Benutzer für das geschützte Arbeitsblatt eine Sortierung vornehmen. Für jede Zelle im Sortierbereich muss die Sperre oder der Schutz aufgehoben werden. Der Standardwert ist False.
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#3
vielen Dank für die schnelle Rückantwort. 
wenn ich diesen Befehl verwende kommt folgende Fehlermeldung beim Kompilieren (siehe Anhang).


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#4
Tja, dann hast Du was falsch gemacht.  21
Zeigst Du mal Deinen Code?
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#5
hier der Code:

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



ich finde auch die von mir verwendeten Befehle für den Autofilter und Gruppierung nicht in dieser Parameter Übersicht?
Antworten Top
#6
Eigenzitat:

Zitat:Die Worksheet.Protect-Methode kennt den Parameter AllowSorting:=True


Da stand nichts von der Worksheet-Eigenschaft .AllowSorting
Schließlich gibt es die gar nicht!
Warum poste ich eigentlich Links, wenn die nicht gelesen werden?

ws.Protect UserInterfaceOnly:=True, Password:="blavlbla", AllowSorting:=True

Aber: Beachte meinen Nachtrag!

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#7
ok dank dir, soweit verstanden.

Gibt es denn keine andere Möglichkeit ohne Aufhebung des Blattschutzes die Liste zu sortieren,
ähnlich wie beim Autofilter und der Gruppierung (ws.EnableAutoFilter ,ws.EnableOutlining)?
Antworten Top
#8
Ja!
Programmatisch, also mittels Code.
Dann brauchst Du auch nicht den Blattschutz erst löschen, dann sortieren und schließlich den Blattschutz wieder setzen.

Denn schließlich sorgt der Parameter UserInterfaceOnly:=True dafür, dass VBA werkeln darf, der Nutzer auf der GUI hingegen nicht.

Dein Ansinnen ist auch nicht exotisch, sondern wird in VBA-gesteuerten Dateien üblicherweise so genutzt.
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#9
Ok, aber so ganz kann ich nicht mehr folgen, ich bin leider kein Programmierer.

Was muss ich nun genau tun, einstellen oder welchen Code muss ich verwenden, damit der Autofilter, die Gruppierung und die Sortierung funktionieren, ohne dass man den Blattschutz aufheben muss. Autofilter und Gruppierungen funktionieren mit meinem Code. Wenn ich nun mit deiner Info (ws.Protect UserInterfaceOnly:=True, Password:="blavlbla", AllowSorting:=True)vervollständige , ist die Sortierung ohne eine vorherige Aufhebung des Schutzes nicht möglich.
Antworten Top


Gehe zu:


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