Excel VBA Button per doppelklick?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

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

Murnax 
Beitragsersteller
 20.08.2021, 11:05

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

mchawk777  20.08.2021, 11:08
@Murnax

Gerne - geht übrigens auch umgekehrt:

If MsgBox ("Sind Sie sicher?", vbYesNo) = vbNo Then Exit Sub

Dann wird die Routine sofort beendet. Viel mir eben auf die Schnelle nicht auf. 😉

Murnax 
Beitragsersteller
 20.08.2021, 12:02
@mchawk777

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.

mchawk777  24.08.2021, 16:09
@Murnax
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

Bild zum Beitrag

Woher ich das weiß:eigene Erfahrung – Bei einer Frage ist Danke ein obligates Zeichen von Respekt
 - (Computer, programmieren, Microsoft Excel)