Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1648to1652
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA-Sortieren trotz VBA-Blattschutz geht nicht

VBA-Sortieren trotz VBA-Blattschutz geht nicht
08.10.2018 09:22:57
Werner
Hallo und Guten Morgen, ich hoffe Ihr könnt mir mal wieder helfen.
ich habe in meiner Geburtstagsliste ein Sortierung und Blattschutz s.u.
wenn ich den Blattschutz ausführe, kann ich nicht mehr sortieren.
Wie kann man es anpassen?
Sub SortiereSpalteAufsteigend()
Dim Sortierspalte As String
Dim Bereich As String
Bereich = "C11:L200"
Sortierspalte = "G"
ActiveSheet.Range(Bereich).Sort _
Key1:=Range(Sortierspalte & "1"), Order1:=xlAscending, _
Header:=xlGuess, MatchCase:=False, _
Orientation:=xlTopToBottom
End Sub
und Blattschutz:
Option Explicit ' Immer zu empfehlen
Sub BlattSchutz()
' kennwort Makro
' Tastenkombination: Keine
Dim myPwd As String, myPwd2 As String
Dim wks As Worksheet
myPwd = Application.InputBox("Passwort eingeben")
myPwd2 = Application.InputBox("Wiederholung")
If myPwd2 = myPwd Then
For Each wks In ActiveWorkbook.Worksheets
wks.Protect Password:=myPwd, DrawingObjects:=True, _
Contents:=True, Scenarios:=True, AllowFormattingCells:=True, _
AllowFormattingColumns:=True, AllowFormattingRows:=True
Next wks
Else
MsgBox "Passwort falsch"
End If
End Sub

Sub freigeben()
' kennwort Makro
' Tastenkombination: Keine
Dim myPwd As String, myPwd2 As String
Dim wks As Worksheet
myPwd = Application.InputBox("Passwort eingeben")
myPwd2 = Application.InputBox("Wiederholung")
If myPwd2 = myPwd Then
For Each wks In ActiveWorkbook.Worksheets
wks.Unprotect Password:=myPwd
Next wks
Else
MsgBox "Passwort falsch"
End If


		

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AllowSorting:=True fehlt !? owT
08.10.2018 10:00:35
Matthias
AW: AllowSorting:=True fehlt !? owT
08.10.2018 10:04:29
Oberschlumpf
...oder so...
Die Option "Sortieren erlaubt" muss beim Setzen des Blattschutzes aktiviert sein
AW: AllowSorting:=True fehlt !? owT
08.10.2018 10:27:54
Werner
Hallo Thosten, leider geht es nicht so perfekt, dann fragt er mich nach dem PW, und dann macht ein fenster auf Falschers Passwort. geht es auch ohne das Passwort einzugeben?
Danke und Gruß
Werner
Ich bin nicht Thorsten owT
08.10.2018 10:44:59
Matthias
AW: AllowSorting:=True fehlt !? owT
08.10.2018 10:47:15
Oberschlumpf
Hi Werner,
einfacher wäre es, wenn du uns ne Bsp-Datei per Upload zeigst, mit der ich testen könnte.
Ich kann deine Datei nicht nachbauen, da ich den Aufbau nicht kenne.
Du könntest auch den Vorschlag von Matthias ausprobieren.
Hilfts?
Ciao
Thorsten
AW: AllowSorting:=True fehlt !? owT
08.10.2018 17:53:33
Werner
Hallo Thorsten,
https://www.herber.de/bbs/user/124482.xlsm
Das Passwortmacro liegt im Modul und das sortieren inArbeitsmappe.
anbei mein kalender mit Geburtstagsliste Pw 2xWerner
Ich habe Dein Vorschlag eingebaut, leider
leider geht es nicht so perfekt, dann fragt er mich nach dem PW, und dann macht ein fenster auf Falschers Passwort. geht es auch ohne das Passwort einzugeben?
Danke und Gruß
Werner
Anzeige
AW: VBA-Sortieren trotz VBA-Blattschutz geht nicht
08.10.2018 10:03:27
Oberschlumpf
Hi Werner,
du musst den Blattschutz VOR jedem Sortieren entfernen.
Z Bsp so (ungetestet):
Sub SortiereSpalteAufsteigend()
Dim Sortierspalte As String
Dim Bereich As String
Dim myPwd As String 'auch hier muss die Variable für PW deklariert sein
On Error GoTo weiter 'wenn ein falsches PW eingegeben wurde,
'kommt es beim Blattschutz entfernen zum Fehler,
'der mit On Error umgangen wird
Bereich = "C11:L200"
Sortierspalte = "G"
myPwd = Application.InputBox("Passwort eingeben")
ActiveSheet.Unprotect Password:=myPwd 'wenn richtiges PW eingegeben, wird der Code in
'der nächsten Zeile fortgesetzt
ActiveSheet.Range(Bereich).Sort _
Key1:=Range(Sortierspalte & "1"), Order1:=xlAscending, _
Header:=xlGuess, MatchCase:=False, _
Orientation:=xlTopToBottom
ActiveSheet.Protect Password:=myPwd 'hier wird der Blattschutz
'mit dem zuvor richtigen PW wieder gesetzt
myPwd = "" 'die Variable mit dem PW wird geleert (man könnte sonst die Variable auslesen)
weiter:
MsgBox "falsches Passwort"
End Sub

Hilfts?
Ciao
Thorsten
Anzeige
AW: VBA-Sortieren trotz VBA-Blattschutz geht nicht
08.10.2018 11:09:44
Daniel
Hi
am sichersten ist, wenn du in den Makros, die die geschützten Blätter bearbeiten sollen, den Blattschutz aufhebst, bevor das Makro loslegt und hinterher wieder aktiviert.
hierbei reicht es dann, nur das Password als Parameter anzugeben, die restlichen Einstellungen merkt sich Excel und übernimmt sie unverändert beim .Protect
Damit du das Passwort nicht jedesmal erneut eingeben musst, solltest du es an versteckter stelle hinterlegen, z.B. in einer ausgeblendeten Spalte auf einem geschützten Blatt, oder auf einem ausgeblendeten Blatt ( oder noch besser in einer CustomDocumentProperty)
dh im Makro "Sub BlattSchutz()" brauchst du irgendwo die Zeile:
Sheets(...).Range(...).Value = myPwd

im Makro "Sub freigeben()" dann entsprechend:
Sheets(...).Range(...).Value = "kein Blattschutz aktiv"
und im Makro "Sub SortiereSpalteAufsteigend()
Sub SortiereSpalteAufsteigend()
dim PW as string
PW = Sheets(...).Range(...).Value
if PW  "kein Blattschutz aktiv" then activesheet.unprotect PW
... hier der Code
If PW  "kein Blattschutz aktiv" then ActiveSheet.Protect PW
End sub
Gruß Daniel
Anzeige
AW: VBA-Sortieren trotz VBA-Blattschutz geht nicht
08.10.2018 20:38:36
Werner
Hab es hin bekommen, vielen Dank an alle und besonders Thorsten.
anbei feedback (allesdings mit 2 x Passworteingabe), dass war auch mit das Problem.
-> Arbeitmappe muss vorher geschützt sein!sonst geht es nicht.
Liebe Grüße an alle die mir geholfen haben.
Werner
s.u.
Sub SortiereSpalteAufsteigend()
Dim Sortierspalte As String
Dim Bereich As String
Dim myPwd As String, myPwd2 As String 'auch hier muss die Variable für PW deklariert sein
On Error GoTo weiter 'wenn ein falsches PW eingegeben wurde,
'kommt es beim Blattschutz entfernen zum Fehler,
'der mit On Error umgangen wird
Bereich = "C11:L200"
Sortierspalte = "G"
myPwd = Application.InputBox("Passwort eingeben")
myPwd2= Application.InputBox("Passwort eingeben")
ActiveSheet.Unprotect Password:=myPwd, ActiveSheet.Unprotect Password:=myPwd2 'wenn richtiges  _
PW eingegeben, wird der Code       'der nächsten Zeile fortgesetzt
ActiveSheet.Range(Bereich).Sort _
Key1:=Range(Sortierspalte & "1"), Order1:=xlAscending, _
Header:=xlGuess, MatchCase:=False, _
Orientation:=xlTopToBottom
ActiveSheet.Protect Password:=myPwd, ActiveSheet.Protect Password:=myPwd2 'hier wird der  _
Blattschutz
'mit dem zuvor richtigen PW wieder gesetzt
myPwd = "",myPwd2 = ""   'die Variable mit dem PW wird geleert (man könnte sonst die Variable  _
auslesen)
myPwd2 = ""
weiter:
MsgBox "Orinal Passwort wieder hergestelt & gesperrt"
End Sub

Anzeige

323 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige