Herbers Excel-Forum - das Archiv

Userform-Bedingung mit / ohne Blattschutz

Informationen und Beispiele zu den hier genannten Dialog-Elementen:


Excel-Version: Alle Versionen
nach unten

Betrifft: Userform-Bedingung mit / ohne Blattschutz
von: Martin


Geschrieben am: 17.05.2002 - 08:34:12

Guten Morgen,

habe gestern schon das Problem gepostet und dachte es sei gegessen, habe mich aber leider getäuscht.

Problem: Wie ist es möglich in einer Userform die Checkboxen zu schützen, wenn das aktive Arbeitsblatt ebenfalls geschützt ist und diese zu entsperren, wenn das Arbeitsblatt ebenso entsperrt ist?

Mein Makro (das aus irgendwelchen Gründen nicht funktioniert) sieht folgendermaßen aus:

Private Sub UserForm_Activate()
Sheets("T1").Select
If Worksheets("T1").Protect = True Then
CB1.Locked = True
CB2.Locked = True
CB3.Locked = True
CB4.Locked = True
CB5.Locked = True
ElseIf Worksheets("T1").Unprotect = True Then
CB1.Locked = False
CB2.Locked = False
CB3.Locked = False
CB4.Locked = False
CB5.Locked = False
End If
End Sub

ich habe es auf verschiedene Art und Weise probiert, mit und ohne den ELSEIF Teil usw. aber es hat nicht hingehauen.

Gruss,
Martin


nach oben   nach unten

Re: Userform-Bedingung mit / ohne Blattschutz
von: Andreas

Geschrieben am: 17.05.2002 - 09:55:31

Hallo Martin,

versuch es mal so:

Dein Makro liefert immer gesperrte Checkboxen, da Du ja das Worksheet mit .Protect immer schützt!
Viel Spaß,
Andreas

nach oben   nach unten

Re: Userform-Bedingung mit / ohne Blattschutz
von: Martin


Geschrieben am: 17.05.2002 - 11:00:49

Hallo Andreas,

ich verstehe zwar nicht warum, aber es funktioniert. Werde das mal in Ruhe durchgehen. Darauf wäre ich nie gekommen; es fehlt mir halt doch noch eine ganze Menge zum Programmieren.

Vielen Dank und ein schönes Wochenende
Gruss,
Martin


nach oben   nach unten

Re: Userform-Bedingung mit / ohne Blattschutz
von: Andreas


Geschrieben am: 17.05.2002 - 11:14:10

Hallo Martin,

kurze Erklärung?
Also
On Error GoTo ErrorHandler
besagt, dass wenn ein Fehler auftritt, zum ErrorHandler gesprungen werden soll!

With Worksheets("T1").Columns(1)
.ColumnWidth = .ColumnWidth
End With
So hier soll die Spaltenbreite der Spalte A des Tabellenblattes gesetzt werden. Dieser befehl ergibt ja eigentlich keinen Sinn, denn die Breite die gesetzt wird, ist ja die Breite die die Spalte schon hat. ABER, ist das Blatt geschützt, so kann man die Spaltenbreite nicht verändern, es tritt also ein Fehler auf. Daher wird dann zum ErrorHandler gesprungen (dort werden die CB gesperrt), sonst wird der Code normal ausgeführt, also die CB werden nicht gesperrt!

Andreas


nach oben   nach unten

Danke für die Erläuterung!
von: Martin
Geschrieben am: 17.05.2002 - 12:31:40

so einfach wie logisch

Martin


 nach oben

Excel-Beispiele zum Thema "Userform-Bedingung mit / ohne Blattschutz"
Kennwort für Blattschutz Blattschutz aufheben
Blattschutzdialog über VBA aufrufen Blattschutz für eine Serie von Tabellen setzen und aufheben
Blattschutz beim Speichern setzen Blattschutz setzen und dennoch mit AutoFiltern
Blattschutz aufheben, Daten eintragen, Blattschutz setzen Blattschutz für VBA-Einträge ausschließen
Blattschutz mit und ohne Passwort aufheben und setzen Spaltenweiser Blattschutz in Abhängigkeit des Anwendernamens