2.4k Aufrufe
Gefragt in Tabellenkalkulation von little-key Mitglied (333 Punkte)
Hallo,

habe mehrere Tabellenblätter, die Passwortgechützt sind.

Nun habe ich mir einen CommandButton gemacht, wo ein Mitarbeiter den Blattschutz aufheben kann.

Code:
Function Blattschutz_KW_aus()
Dim strPw As String
strPw = "passwort"
If InputBoxDK("Bitte Passwort eingeben...", "Passwortabfrage") <> strPw Then
MsgBox ("Falsches Passwort!")
Exit Sub
Else
ActiveSheet.Unprotect ("passwort")
End If
End Sub

Nun mein Problem:
Es soll nur bei einer Spalte (Spalte AG) der Schutz aufgehoben werden, der Rest soll geschützt bleiben.

Bitte Hilfe.

Gruß Mario

8 Antworten

0 Punkte
Beantwortet von little-key Mitglied (333 Punkte)
Ein Schreibfehler ist drin.
Es heißt natürlich Exit Function und End Function.
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Mario,

ich sollte mich irren, aber per funktion kannst du kein Foramtierungen vornehmen.

Gruß Hajo
0 Punkte
Beantwortet von little-key Mitglied (333 Punkte)
Hallo Hajo,

auch nicht über:
Private Sub CommandButton7_Click()
Blattschutz_KW_aus
End Sub

Über den Button wird doch die Function ausgeführt???
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo mario,

bleibt aber die Funktion. Warum schreibst Du den Code nicht unter den CommandButton oder einzelne Sub?

Gruß hajo
0 Punkte
Beantwortet von little-key Mitglied (333 Punkte)
Hallo Hajo,

Dann würde es wohl so aussehen:

Private Sub CommandButton7_Click()
Dim strPw As String
strPw = "passwort"
If InputBoxDK("Bitte Passwort eingeben...", "Passwortabfrage") <> strPw Then
MsgBox ("Falsches Passwort!")
Exit Sub
Else
ActiveSheet.Unprotect ("passwort")
End If
End Sub

Damit wird aber der gesamte Blattschutz aufgehoben, soll aber nur Spalte AG, besser Range("AG5:AG38"), sein.
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Mario,

für eine Saplte aknnst du den nicht aufheben. Du kannst Eingaben in einer Spale zulassen, Zellen formatieren, Register Schutz, gesperrt entfernen.

Gruß Hajo
0 Punkte
Beantwortet von little-key Mitglied (333 Punkte)
Ich glaube ich hab´s.
Eigentlich wie Du es sagst:

Sub Blattschutz_KW_aus()
Dim strPw As String
strPw = "passwort"
If InputBoxDK("Bitte Passwort eingeben...", "Passwortabfrage") <> strPw Then
MsgBox ("Falsches Passwort!")
Exit Sub
Else
ActiveSheet.Unprotect ("passwort")
Range("AG5:AG38").Select
Selection.Locked = False
ActiveSheet.Protect ("passwort")
End If
End Sub

Danke Dir aber trotzdem Hajo, der Tipp war bestens.

Gruß Mario
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo mario,

auf select kann in VBA zu 99,9% verzichtet werden
Range("AG5:AG38").Locked = False

Gruß Hajo
...