Clever-Excel-Forum

Normale Version: Button erstellen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Moin,

ich bin wenig erfahren und wenig belesen was Excel angeht, deswegen diese Frage zu Buttons und Funktion.

Wie ich den Button selber einfüge weiss ich zumindest.
Was er tun soll ist, auf klick, zu A1 +1 zu rechnen und zu A2 +2 zu rechnen und dies jedesmal wenn ich drauf drücke.
Für mich hört sich das sehr einfach erstmal an, allerdings hab ich, nicht mal ansatzweise, eine Ahnung wie ich dies umsetze.

Greetings

Schmauke
Hallo,

und ich habe noch nicht einmal ansatzweise eine Idee, wozu das gut sein soll.

Code:
Private Sub CommandButton1_Click()
   Range("A1") = Range("A1") + 1
   Range("A2") = Range("A2") + 2
End Sub
(30.12.2018, 12:33)Klaus-Dieter schrieb: [ -> ]Hallo,

und ich habe noch nicht einmal ansatzweise eine Idee, wozu das gut sein soll.

Code:
Private Sub CommandButton1_Click()
   Range("A1") = Range("A1") + 1
   Range("A2") = Range("A2") + 2
End Sub

Vielen Dank. Hat wunderbar geklappt.

Eine weitere Frage ist jedoch aufgekommen.
Wenn ich das "Blatt" schützen möchte, jedoch den Button freigegeben lassen haben möchte, wie stell ich das an? 
Wenn ich über "Steuerelement formatieren" den Schutz raus nehmen, kann man die Button trotzdem, bei geschützen Blatt, nicht benutzen.
Hi,

Code:
Option Explicit

Private Sub CommandButton1_Click()
   ActiveSheet.Unprotect
       Range("A1") = Range("A1") + 1
       Range("A2") = Range("A2") + 2
   ActiveSheet.Protect
End Sub
Hallöchen,

alternativ kannst Du den Schutz bei A1 und A2 generell rausnehmen (Zellen formatieren …) , wenn dort eine manuelle Eingabe erlaubt sein kann.
Hallo, :19:

das ist jetzt in deinem Fall nicht ganz so entscheidend, aber wenn möglich verzichtet man auf "Unprotect" - Code ausführen - "Protect". Warum?

1. Das muss bei jeder Anwendung des Codes durchlaufen werden.
2. In einem Fehlerfall - und ohne richtige Fehlerbehandlung - bleibt das Blatt unter Umständen ungeschützt.

Dafür haben die Programmierer von Microsoft den Schalter "UserInterfaceOnly" in den Parametern der Worksheet.Protect-Methode untergebracht.:21:


UserInterfaceOnly - Optional - Variant - TRUE, um die Benutzeroberfläche, aber keine Makros zu schützen. Wenn dieses Argument nicht angegeben wird, gilt der Schutz für Makros und die Benutzeroberfläche.


Also, wenn dieser Parameter gesetzt wird, können Makros Änderungen am Tabellenblatt vornehmen, ohne dass jedesmal der Schutz entfernt und wieder gesetzt werden muss.

Einen kleinen Haken hat die Sache aber - nach dem schließen der Arbeitsmappe ist das Makulatur. Dafür wird das dann einmal beim öffnen der Datei erledigt.

Code gehört unter "DieseArbeitsmappe" (für alle Tabellenblätter der Datei):
Code:
Option Explicit
Private Sub Workbook_Open()
    Dim wksSheet As Worksheet
    For Each wksSheet In ThisWorkbook.Worksheets
        wksSheet.Protect UserInterfaceOnly:=True
    Next wksSheet
End Sub

Für ein bestimmtes Tabellenblatt (Tabellenblattname gegebenenfalls anpassen):

Code:
Option Explicit
Private Sub Workbook_Open()
    ThisWorkbook.Worksheets("Tabelle1").Protect UserInterfaceOnly:=True
End Sub

Schau dir auch noch die anderen Parameter an. Z. B. ein Kennwort vergeben.

Ich bin fast geneigt mit Dr. rer. nat. Angela Dorothea Merkel zu sagen - das ist Alternativlos. 05