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

Button - Abbrechen programmieren

Button - Abbrechen programmieren
21.02.2022 13:25:33
Flo
Guten Tag,
da mir heute bei meinem ersten Problem schon sehr geholfen wurde, dachte ich mir ich frage mal hier nach da ich auf ein anderes Problem gestoßen bin.
ich habe einen KennwortButton, wenn man diesen drückt wird das Kennwort für den Blattschutz abgefragt. Nun ist es so wenn ich keine Angabe oder eine falsche Angabe mache ist alles in Ordnung aber wenn man einfach unten auf "Abbrechen" klickt. dann hebt er td den Blattschutz auf bzw. zeigt die anderen Buttons an.
Hier der Code:
On Error GoTo Fehler
If ActiveSheet.ProtectContents = False Then GoTo Fehler
ActiveSheet.Unprotect
ActiveSheet.CommandButton2.Visible = True
ActiveSheet.CommandButton3.Visible = True
ActiveSheet.CommandButton4.Visible = True
Sheets("Grundeinstellungen").Visible = True
Exit Sub
Ich hoffe ihr könnt mir weiterhelfen nocheinmal =)
VG
Flo

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Button - Abbrechen programmieren
21.02.2022 13:51:11
Nepumuk
Hallo Flo,
zeig doch mal deinen Abfragedialog, der ist nämlich nicht zu sehen.
Gruß
Nepumuk
AW: Button - Abbrechen programmieren
21.02.2022 13:57:00
Flo
Der Abfragedialog ist ganz simpel , habe da nichts besonderes erstellt.
Lautet wie folgt:
Kennwort: "Eingabefeld"
OK Abbrechen
Reicht das oder brauchst du ein Screenshot ?
VG
Flo
AW: Button - Abbrechen programmieren
21.02.2022 13:59:12
Nepumuk
Hallo Flo,
neeeeee, die Programmzeilen damit ich sehe was du für einen Dialog benutzt.
Gruß
Nepumuk
AW: Button - Abbrechen programmieren
21.02.2022 14:04:32
Flo
Achso
Im Tabellenblatt steht :

Private Sub CommandButton1_Click()
Call CB1
End Sub
und den anderen Code hast du ja schon aus dem Modul. Und es ist ein ActiveX Steuerelement.
VG
Flo
Anzeige
AW: Button - Abbrechen programmieren
21.02.2022 14:22:19
UweD
Hallo
In deinem Fall erfolgt die Eingabe über die Exceleigene Passworteingabe.
Du könntest aber nachdem der Nutzer reagiert hat (und auf abbrechen gedrückt hat) erneut abfragen, ob das Blatt noch geschützt ist und dann dort reagieren.

Sub CB1()
On Error GoTo Fehler
If ActiveSheet.ProtectContents = False Then GoTo Fehler
ActiveSheet.Unprotect
If ActiveSheet.ProtectContents = False Then 'erneute Abfrage 
ActiveSheet.CommandButton2.Visible = True
ActiveSheet.CommandButton3.Visible = True
ActiveSheet.CommandButton4.Visible = True
Sheets("Grundeinstellungen").Visible = True
End If
Exit Sub
Fehler:
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowSorting:=True, AllowFiltering:=True, Password:=("KdoSAN")
ActiveSheet.CommandButton2.Visible = False
ActiveSheet.CommandButton3.Visible = False
ActiveSheet.CommandButton4.Visible = False
Sheets("Grundeinstellungen").Visible = False
On Error GoTo 0
End Sub
LG UweD
Anzeige
AW: Button - Abbrechen programmieren
21.02.2022 14:26:20
Nepumuk
Hallo Flo,
jetzt verstehe ich, du rufst mit "ActiveSheet.Unprotect" den Exceldialog zum Entsperren auf.
Darauf hast du keinen Einfluss. Versuch es so:

Public Sub CB1()
Dim strPassword As String
If ActiveSheet.ProtectContents Then
strPassword = InputBox("Kennwort:", "Blattschutz aufheben")
If StrPtr(Ptr:=strPassword)  0 Then
On Error GoTo err_exit
ActiveSheet.Unprotect Password:=strPassword
ActiveSheet.CommandButton2.Visible = True
ActiveSheet.CommandButton3.Visible = True
ActiveSheet.CommandButton4.Visible = True
Worksheets("Grundeinstellungen").Visible = xlSheetVisible
Else
Call MsgBox("Es ist kein Blattschutz aktiv.", vbInformation, "Information")
End If
End If
Exit Sub
err_exit:
Call MsgBox("Falsches Kennwort.", vbCritical, "Fehleingabe")
End Sub
Gruß
Nepumuk
Anzeige
AW: Button - Abbrechen programmieren
21.02.2022 14:55:31
Daniel
Hi
du hast deine IF-Abfrage falsch positioniert, die muss nach dem ActiveSheet.Unprotect ausgeführt werden. Davor brauchst du sie nicht, wenn das Blatt nicht geschützt ist und du führst es aus, passiert nichts, das wird einfach übersprungen.
weiterhin würde ich das On Error Resume Next so schnell wie möglich wieder ausschalten und nur das in diesem Modus lassen, was bei Normalbetrieb und korrekter Programmierung zu Fehlern führen kann. Ansonsten fallen einem mögliche Programmierfehler erst dann auf, wenns zuspät ist.
ebenso würde ich zu richtigen IF-Strukturen raten ohne Gotos, die braucht man nicht mehr. Gotos sind aus der Zeit, als man Schlaghosen mit Karohemden trug und heutzutage auch genauso modern:

Sub Blattschutz_Abrfagen()
On Error GoTo Resume Next
ActiveSheet.Unprotect
On Error Goto 0
If ActiveSheet.ProtectContents = False Then
ActiveSheet.CommandButton2.Visible = True
ActiveSheet.CommandButton3.Visible = True
ActiveSheet.CommandButton4.Visible = True
Sheets("Grundeinstellungen").Visible = True
End If
End Sub
Gruß Daniel
Anzeige
AW: Button - Abbrechen programmieren
21.02.2022 14:57:11
Flo
Ich bedanke mich bei allen bei den schnellen Antworten.
Hat funktioniert

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige