Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1960to1964
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

Toggle-Button mit Passwortabfrage und Blattschutz

Toggle-Button mit Passwortabfrage und Blattschutz
20.01.2024 17:59:57
Adron
Ein Toggle-Button schaltet nach vorheriger Passwortabfrage eine Spalte zur Bearbeitung frei. Der Button wechselt nach Eingabe des richtigen Passworts auf grün mit dem Text "entsperrt". Nach Eingabe der Daten in den jetzt offenen Zellbereichen erfolgt ein weiterer Klick auf den Toggle-Button, was die Spalte sperrt. Der Button wechselt wieder auf die Farbe rot und dem Text "gesperrt".
Zusatzinfos:
- Blattschutz ist aktiv mit Passwort
- Spalte E ist mit einem zweiten Teilbereichspasswort geschützt (Benutzer dürfen Bereiche bearbeiten)
Das Makro läuft, aber nicht flüssig.
Problem: Wird der Button zur Blattsperre wieder gedrückt, färbt sich der Button rosa und erst mit einem zweiten Klick wieder in die programmierte Farbe rot. Zudem erfolgt nochmal die Passwortabfrage, was aber in diesem Arbeitsschritt nicht sein soll. Könnt ihr mir bitte helfen? Ist der Code eigentlich im Tabellenblatt oder in einem Modul besser aufgehoben?



Private Sub ToggleButton1_Click()

If ToggleButton1.Value = True Then GoTo Zeile1

Zeile1:
Const strPW = "1234" 'Hier das gewünschte Passwort eingeben!
If ToggleButton1 = False Then
If Application.InputBox("Bitte Passwort eingeben: ", "Geschützter Bereich", Type:=2) = _
strPW Then
'MsgBox "Das Passwort ist richtig!"

ToggleButton1.BackColor = RGB(0, 255, 0)
Me.ToggleButton1.Caption = "entsperrt"
Me.Unprotect "Passwort"
Me.Range("E:E").Locked = False
Me.Range("A:D").Locked = True
Me.Range("F:U").Locked = True
Me.Protect "Passwort"

Else
'MsgBox "Falsches Passwort!"
End If

Else
ToggleButton1.BackColor = RGB(255, 0, 0)
Me.ToggleButton1.Caption = "gesperrt"
Me.Unprotect "Passwort"
Me.Range("A:U").Locked = True
Me.Protect "Passwort"


End If
End Sub

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Toggle-Button mit Passwortabfrage und Blattschutz
20.01.2024 18:35:53
onur
    If ToggleButton1.Value = True Then GoTo Zeile1

Ist Schwachsinn, denn es wird sowieso zu "Zeile1" gesprungen.
"E:E" ist bei dir immer entsperrt und "A:U" immer gesperrt, egal was gewählt wird.




AW: Toggle-Button mit Passwortabfrage und Blattschutz
20.01.2024 19:09:58
Rudi Maintaire
Hallo,
soll das nicht eigentlich
Me.Protect strPW
Me.UnProtect strPW
heißen?

Der Code muss im Modul des Blatts mit dem Togglebutton stehen.

Gruß
Rudi
AW: Toggle-Button mit Passwortabfrage und Blattschutz
20.01.2024 19:43:21
Adron
Hallo Rudi,
mein Ziel ist, den Button "gesperrt" und das dahinter stehende Makro nur berechtigten Personen nach Eingabe des Passwortes ausführen zu lassen.
Hierfür ist die Const-Anweisung mit dem Passwort 1234.
Nach Eingabe dieses Passworts läuft das Makro ab und hebt den Blattschutz für eine einzige Spalte auf, wofür ich den Code Me.Unprotect / Me.Protect mit dem PW="Passwort" genommen habe. Vielleicht habe ich zu kompliziert gedacht und es geht auch einfacher.

Grüße
Adron

Anzeige
AW: Toggle-Button mit Passwortabfrage und Blattschutz
20.01.2024 18:38:41
onur
"A:U" ist zwar immer gesperrt, aber wenn das Blatt nicht gesperrt wird, ist das sowieso egal.
Du musst die Bereiche direkt manuell (ohne VBA) sperren und das dann erst durch Code (Blattsperre) aktivieren.
AW: Toggle-Button mit Passwortabfrage und Blattschutz
20.01.2024 19:54:39
Adron
Klare Ansage! Kann man überhaupt mit VBA eine Benutzerberechtigung entsperren? In meinem Fall möchte ich in einem passwortgeschützten Blatt (Passwort A) den kennwortgeschützten Teilbereich $E:$E (Passwort B) entsperren.
AW: Toggle-Button mit Passwortabfrage und Blattschutz
20.01.2024 19:58:01
Adron
Klare Ansage! Kann man überhaupt mit VBA eine Benutzerberechtigung entsperren? In meinem Fall möchte ich in einem passwortgeschützten Blatt (Passwort A) den kennwortgeschützten Teilbereich $E:$E (Passwort B) entsperren.
Anzeige
AW: Toggle-Button mit Passwortabfrage und Blattschutz
20.01.2024 20:56:51
onur
Private Sub ToggleButton1_Click()

Me.Unprotect "Passwort"
Const strPW = "1234" 'Hier das gewünschte Passwort eingeben!
ToggleButton1.BackColor = RGB(255, 0, 0)
ToggleButton1.Caption = "gesperrt"
If ToggleButton1 Then
If InputBox("Bitte Passwort eingeben: ") = strPW Then
ToggleButton1.BackColor = RGB(0, 255, 0)
ToggleButton1.Caption = "entsperrt"
Else
Application.EnableEvents = False
ToggleButton1 = False
Application.EnableEvents = True
End If
End If
Me.Range("E:E").Locked = Not ToggleButton1
Me.Protect "Passwort"
End Sub
Anzeige
AW: Toggle-Button mit Passwortabfrage und Blattschutz
20.01.2024 22:45:01
Adron
DANKE onur!! Ich muss den Code erst noch verdauen und habe noch einen Aufhänger:
Ich habe versucht, nachfolgenden Code nach der Zeile [Me.Range("E:E").Locked = Not ToggleButton1] zu ergänzen, bekomme dann aber einen Fehler. Hier möchte ich den Wert wechselseitig ersetzen. Spalte B und E habe ich im Code entsperrt.



Application.EnableEvents = False
If Target.Column = 2 Then Target.Offset(, 3).Value = Target.Value 'Spalte 2 übernimmt den Wert aus Spalte 5
If Target.Column = 5 Then Target.Offset(, -3).Value = Target.Value 'Spalte 5 übernimmt den Wert von Spalte 2
End If
Application.EnableEvents = True
Anzeige
AW: Toggle-Button mit Passwortabfrage und Blattschutz
20.01.2024 23:08:29
onur
Es gibt kein "Target" bei Togglebuttons.
Wie kommst du denn jetzt dadrauf?
AW: Toggle-Button mit Passwortabfrage und Blattschutz
20.01.2024 23:21:47
Adron
Die wechselseitige Übernahme der Daten von Spalte B und E ist das eigentliche Ziel nachdem erstmal alles entsperrt ist. Bei nicht gesperrten Zellen funktioniert der Code einwandfrei. Kennst du vlt ein Lösung?
AW: Toggle-Button mit Passwortabfrage und Blattschutz
20.01.2024 23:32:23
onur
Das eine Makro ist doch nur zum Sperren/Entsperren des Bereiches. Du brauchst zusätzlich ein zweites Makro im Modul des Arbeitsblattes:
Private Sub Worksheet_Change(ByVal Target As Range)

Dim sp, ze, zielsp
sp = Target.Column: ze = Target.Row
If sp > 2 And sp > 5 Then Exit Sub 'Nur auf Änderungen in B und E reagieren
Application.EnableEvents = False
zielsp = 5: If sp = 5 Then zielsp = 2
Cells(ze, zielsp) = Target
Application.EnableEvents = True
End Sub
Anzeige
AW: Toggle-Button mit Passwortabfrage und Blattschutz
21.01.2024 08:29:59
Adron
Vielen Dank! Das läuft jetzt super! Krass, wie schnell du bist. Musst du eig auch testen oder ist das einfache Schule?
AW: Toggle-Button mit Passwortabfrage und Blattschutz
21.01.2024 17:09:53
Adron
Nachfrage:
In meiner Tabelle habe ich mehrere Datenschnittfenster, um die Daten entsprechend zu filtern. Mittels einer erstellten Schaltfläche und hinterlegtem Makro werden alle Filter wieder gelöscht und auf "Anfang" gesetzt. Jetzt möchte ich auch den ToggleButton mit einbinden, der wieder auf rote Farbe zurückspringt. Aus dem Sub-Modul wollte ich den ToggleButton so ansprechen: (onur, du schüttelst wahrscheinlich schon den Kopf). Vielleicht ist es ja doch möglich?



Sub ToggleButton1_Click()
ToggleButton1.BackColor = RGB(255, 0, 0)
End Sub
Anzeige
Gerne !
21.01.2024 09:25:32
onur
Testen sollte man eigentlich immer.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige