Microsoft Excel

Herbers Excel/VBA-Archiv

VBA - Passwort wird nicht angenommen


Betrifft: VBA - Passwort wird nicht angenommen
von: Klaus
Geschrieben am: 17.12.2018 15:57:31

Hallo, ich habe ein Makro um das Einblenden von Gruppen und Autofiltern bei Blattschutz zu ermö _ glichen.

Sub Workbook_Open()
ActiveSheet.Unprotect Password:="#Treu"
ActiveSheet.Protect userinterfaceonly:=True
ActiveSheet.EnableOutlining = True 'für Gliederung
ActiveSheet.EnableAutoFilter = True
   ActiveSheet.Protect Password:="#Treu", DrawingObjects:=True, Contents:=True, Scenarios:=True

End Sub

Allerdings ist nach Ausführen des Makros das Blatt ohne Password geschützt. Versteh ich nicht. Liegt das an dem "unserinterfaceonly:=True?"
Damit werden doch nur die Makros nicht geschützt?

Danke für jede Hilfe!

  

Betrifft: AW: VBA - Passwort wird nicht angenommen
von: Sandra B.
Geschrieben am: 17.12.2018 16:12:31

Hallo Klaus,

so

Sub Workbook_Open()
ActiveSheet.Unprotect Password:="#Treu"
ActiveSheet.Protect userinterfaceonly:=True, Password:="#Treu"
ActiveSheet.EnableOutlining = True 'für Gliederung
ActiveSheet.EnableAutoFilter = True
   ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

End Sub
Viele Grüße
Sandra


  

Betrifft: AW: VBA - Passwort wird nicht angenommen
von: Klaus
Geschrieben am: 17.12.2018 17:05:25

Hallo Sandra,

perfekt, Danke! - hätte ich mir ein paar Stunden sparen können.
Leider kann ich nur vermuten warum es so rum funktioniert.

Auch egal.

Grüße
Klaus


  

Betrifft: AW: VBA - Passwort wird nicht angenommen
von: Sandra B.
Geschrieben am: 17.12.2018 17:51:48

Servus Klaus,

Sorry, da hatte ich drüber weg gelesen.

UserInterfaceOnly:=True bedeutet lediglich, das die Sperrung nur Einfluss auf die Usereingaben hat.
Ein VBA Programm kann trotzdem Eingaben machen.

Activesheet.Protect ist der Befehl für den Blattschutz. Wird direkt dahinter kein Passwort festgelegt, wird das Blatt ohne Passwort gesperrt.
Demnach erst das Blatt schützen und dann auflisten was erlaubt sein soll.

Viele Grüsse
Sandra


  

Betrifft: AW: VBA - Passwort wird nicht angenommen
von: Klaus
Geschrieben am: 17.12.2018 19:34:10

Hallo Sandra,

danke für Deine Erklärungen, dadurch war ich nun in der Lage einen Schreibschutz zu basteln, der von vornherein das Einblenden und Autofiltern möglich lässt.

Sub Blatt_schützen_mit_Standardpasswort()
'
' Blatt_schützen_mit_Standardpasswort Makro
'
' Tastenkombination: Strg+b
'
    ActiveSheet.Protect userinterfaceonly:=True
    ActiveSheet.EnableOutlining = True
    ActiveSheet.EnableAutoFilter = True
    ActiveSheet.Protect Password:="#Treu", DrawingObjects:=True, Contents:=True, Scenarios:= _
True
End Sub
funktioniert.... oder siehst Du noch Verbesserungsbedarf.

Vielen Dank auch!
Grüße

Klaus


  

Betrifft: AW: VBA - Passwort wird nicht angenommen
von: Nepumuk
Geschrieben am: 17.12.2018 19:40:16

Hallo Klaus,

teste mal:

Sub Blatt_schützen_mit_Standardpasswort()
    '
    ' Blatt_schützen_mit_Standardpasswort Makro
    '
    ' Tastenkombination: Strg+b
    '
    With ActiveSheet
        .Protect Password:="#Treu", UserInterfaceOnly:=True, _
            DrawingObjects:=True, Contents:=True, Scenarios:=True
        .EnableOutlining = True
        .EnableAutoFilter = True
    End With
End Sub

Gruß
Nepumuk


  

Betrifft: AW: VBA - Passwort wird nicht angenommen
von: Klaus
Geschrieben am: 17.12.2018 20:19:00

Danke Nepomuk,

aber das Blatt bleibt ungeschützt...
Bei mir hat es mit einer kleinen Abänderung geklappt.
Allerdings, immer wenn ich die Datei schließe und wieder öffne, steht das EnableOutlining wieder auf False.
hmmm.....


Blatt_schützen_mit_Standardpasswort Makro
'
' Tastenkombination: Strg+b
'
ActiveSheet.Protect userinterfaceonly:=True, password:="#Treu"
ActiveSheet.EnableOutlining = True
ActiveSheet.EnableAutoFilter = True
ActiveSheet.Protect Password:="#Treu", DrawingObjects:=True, Contents:=True, Scenarios:= _
True
End Sub


  

Betrifft: AW: VBA - Passwort wird nicht angenommen
von: Nepumuk
Geschrieben am: 17.12.2018 20:32:22

Hallo Klaus,

kann ich nicht nachvollziehen, das mach ich so seit Jahren und es hat immer geklappt. Auch im gerade durchgeführten Test funktioniert es wie geplant. Bist du dir sicher dass die von dir getestete Zelle auch das Format "Gesperrt" hat?

Gruß
Nepumuk


  

Betrifft: AW: VBA - Passwort wird nicht angenommen
von: Klaus
Geschrieben am: 17.12.2018 20:43:19

Hi Nepomuk,
Asche auf mein Haupt, Du hast recht, so muss es gewesen sein.
Es funktioniert. Danke!

Aber das Problem, dass nach dem Schließen und wieder öffnen der Datei, EnableOutlining wieder auf False steht habe ich noch....hast Du dafür vielleicht auch eine Lösung?

Wäre großartig.
Grüße


  

Betrifft: AW: VBA - Passwort wird nicht angenommen
von: Nepumuk
Geschrieben am: 17.12.2018 21:24:15

Hallo Klaus,

ist der Schutz nur für eine Tabelle oder für alle Tabellen in der Mappe?

Gruß
Nepumuk


  

Betrifft: AW: VBA - Passwort wird nicht angenommen
von: klaus
Geschrieben am: 17.12.2018 21:39:17

Hallo Nepomuk
da ich es nicht besser weiß, schütze ich jede Tabelle einzeln.
Also ja gilt für alle Tabellen in der Mappe.
Gruß
Klaus


  

Betrifft: AW: VBA - Passwort wird nicht angenommen
von: mumpel
Geschrieben am: 17.12.2018 22:15:50

Hallo!

Private Sub Workbook_Open()
 Dim objBlatt As Object
 
     For Each objBlatt In ThisWorkbook.Worksheets
         With objBlatt
             .Protect Password:="Kennwort", UserInterfaceOnly:=True, _
                      DrawingObjects:=True, Contents:=True, _
                      Scenarios:=True
             .EnableOutlining = True
             .EnableAutoFilter = True
         End With
     Next objBlatt
End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0

Gruß, René


  

Betrifft: AW: VBA - Passwort wird nicht angenommen
von: Nepumuk
Geschrieben am: 18.12.2018 07:20:59

Hallo René,

warum objBlatt As Object und nicht As Worksheet?

Gruß
Nepumuk


  

Betrifft: AW: VBA - Passwort wird nicht angenommen
von: mumpel
Geschrieben am: 18.12.2018 09:22:36

Weil ich es nicht anders kenne. So hab ich es in den Foren gelernt.


  

Betrifft: AW: VBA - Passwort wird nicht angenommen
von: Nepumuk
Geschrieben am: 18.12.2018 10:14:08

Hallo René,

wenn du alle Blätter einer Mappe durchläufst, dann ist As Object der richtige Variablentyp, denn da könnten ja auch Diagrammblätter dabei sein. Wenn du aber sowieso nur Tabellen abklapperst dann As Worksheet. Da hast du nämlich die IntelliSense einer Tabelle zur Verfügung.

Gruß
Nepumuk


  

Betrifft: AW: VBA - Passwort wird nicht angenommen
von: mumpel
Geschrieben am: 18.12.2018 10:17:50

Man ist nie zu alt um dazuzulernen. ;-)


  

Betrifft: AW: VBA - Passwort wird nicht angenommen
von: Klaus
Geschrieben am: 18.12.2018 11:44:05

Hallo Rene, hallo Nepomuk,

danke für Eure HIlfe... die Version funktioniert nun. DAnke!

Private Sub Workbook_Open()
Dim objBlatt As Worksheet
 
     For Each Worksheet In ThisWorkbook.Worksheets
         With Worksheet
             .Protect Password:="#Treu", UserInterfaceOnly:=True, _
                      DrawingObjects:=True, Contents:=True, _
                      Scenarios:=True
             .EnableOutlining = True
             .EnableAutoFilter = True
         End With
     Next Worksheet
End Sub