Excel VBA Button per doppelklick?
Moinsen,
Ich würde gerne einen versteckten Button erstelln, der folgendes Kann:
Sub CommandButton1_Click()
If ActiveSheet.ProtectContents = False Then
ActiveSheet.Protect Password:="+1516", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingRows:=True
Else
ActiveSheet.Unprotect
End If
Jedoch würde ich ihn gerne nur per Doppelklick aktivieren lassen, da man sonst evt ausversehen drauf kommt.
3 Antworten
Ein Doppelklick ist bei Windows ausschließlich zum Starten von Programmen da - nicht für solche Aktionen.
Besser wäre hier eine "Sind Sie sicher?"-Abfrage.
If MsgBox ("Sind Sie sicher?", vbYesNo) = vbYes Then
[...Aktion ausführen...]
End If
Ganz blöde frage, wo muss ich das denn einfügen, bzw wie?
hab jetzt einfach den command über dem:
If MsgBox("Blattschutz aufheben/aktivieren?", vbYesNo) = vbYes Then
aber dann kommt ja einmal die box sind sie sicher und wenn ich auf ja dann kommt die box mit Blattschutz aufgenen.
Aber wenn ich da dann wieder auf nein gehe is es ja trozdem ja.
Steh grad iwie auf dem schlauch.
Ganz blöde frage, wo muss ich das denn einfügen, bzw wie?
Sorry - die Frage ist mir durchgegangen.
Diese Art von Rückfrage sollte man sofort als ersten Befehl z. B. nach der Vairabeln-Definition einfügen.
Kann im Prinzip direkt unter
Sub OnClick_Button()
...oder so ähnlich. erfolgen.
Es soll ja sofort abgebrochen und keine weiteren Befehle ausgeführt werden.
Dafür musst du einen Button bzw. besser ein Label (das lässt sich so gestalten, dass es nicht sichtbar ist) aus den "Active X Steuerelementen" nehmen. Wenn du auf der Registerkarte Entwicklertools bist, hast du beim Punkt "Einfügen" ja eine Liste mit Formularsteuerelementen und eine Liste mit Active X Steuerelementen.
Das Label kannst du dann an die Stelle schieben, die du haben willst, einen Rechtsklick drauf machen und auf "Code anzeigen" gehen. Dann geht der VBA-Editor auf und du hast über dem Code zwei Felder. Links der Name vom Label und rechts ein Feld, wo "Click" drinsteht. Bei dem "Click" kannst du die Liste aufmachen und "DblClick" auswählen. Dann wird eine neue Prozedur eingefügt, die bei einem Doppelklick ausgeführt wird und du kannst den Code einfügen.
Hallo
Gib den Befehl einfach unter DblClick rein ....
Private Sub CommandButton1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If ActiveSheet.ProtectContents = False Then
ActiveSheet.Protect Password:="+1516", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFormattingRows:=True
Else
ActiveSheet.Unprotect
End If
End Sub

Danke für die Gute Idee, gefällt mir sogar besser :)