Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Checkbox aktiviert Textbox

Checkbox aktiviert Textbox
01.07.2019 19:04:18
Sören
Hallo zusammen,
bin im Internet auf folgenden Code gestoßen. Dabei soll durch klicken einer Checkbox eine TextBox aktiviert werden oder eben gesperrt sein. Wenn es gesperrt ist, soll die TextBox grau hinterlegt sein, und beim aktiven weiß werden.
Leider funktioniert er bei mir nicht, obwohl meine Checkbox und TextBox genauso heißt wie im Code. Kann mir einer helfen, wie der Code heute aussehen müssste?
Private Sub CheckBox1_Click()
Select Case ActiveDocument.CheckBox1.Value
Case Is = False
With ActiveDocument.TextBox1
.Select
'flach
.SpecialEffect = 0
'grau
.BackColor = &HC0C0C0
.ForeColor = &HC0C0C0
'gesperrt
.Locked = True
End With
Case Is = True
With ActiveDocument.TextBox1
.Select
'vertieft
.SpecialEffect = 2
.BackColor = &HC0C0C0
'weiss
.BackColor = &HFFFFFF
.ForeColor = &H80000006
.Locked = False
End With
End Select
End Sub
Gruß Sören
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Checkbox aktiviert Textbox
01.07.2019 19:13:33
Luschi
Hallo Sören,
ActiveDocument im Code zeigt an, daß dieser Code zur Word-Vba gehört - in Excel muß man nur ActiveDocument gegen ActiveSheet austauschen, und schon klappt das bei mir.
Gruß von Luschi
aus klein-Paris
AW: Checkbox aktiviert Textbox
01.07.2019 19:27:13
Sören
Hallo Luschi,
Danke. Habe es geändert. Leider kann man immer noch in die TextBox1 was eintragen ohne auf die Checkbox zu klicken und wenn ich auf die Checkbox1 klicken will kommt die Fehlermeldung 438.
Könnte vielleicht noch irgendwas nicht passen?
Gruß Sören
Anzeige
AW: Checkbox aktiviert Textbox
01.07.2019 19:34:51
Werner
Hallo Sören,
bescheidene Frage:
Sind die Textbox im Tabellenblatt oder in einer Userform?
Gruß Werner
AW: Checkbox aktiviert Textbox
01.07.2019 19:39:39
Sören
Hallo Werner,
in einer Userform. Jetzt wo du es sagt, ist der Code wohl komplett falsch oder?
Gruß Sören
AW: Checkbox aktiviert Textbox
01.07.2019 19:43:45
Werner
Hallo Sören,
der Code gehört ins Codemodul der Userform.
Private Sub CheckBox1_Click()
If Not Me.CheckBox1 Then
Me.TextBox1.SpecialEffect = 0
Me.TextBox1.BackColor = &HC0C0C0
Me.TextBox1.ForeColor = &HC0C0C0
Me.TextBox1.Locked = True
Else
Me.TextBox1.SpecialEffect = 2
Me.TextBox1.BackColor = &HFFFFFF
Me.TextBox1.ForeColor = &H80000006
Me.TextBox1.Locked = False
End If
End Sub
Gruß Werner
Anzeige
AW: Checkbox aktiviert Textbox
01.07.2019 19:55:18
Sören
Hallo Werner,
vielen Dank. Der Code funktioniert. Leider habe ich noch 2 Probleme. wenn die Maske geöffnet wird, soll die TextBox 1 deaktiviert sein. Aktuell kann man, wenn die Maske geöffnet wird, was in die TextBox 1 eintragen und erst wenn man das Kontrollkästchen drückt und noch einmal drückt um das Häkchen raus zu nehmen ist die TextBox 1 gesperrt. und das 2 Problem ist, dass ich eig eine Kombination machen will.
Mann hat 2 TextBoxen. In TextBox 1 kann man was eintragen. In TextBox 2 nicht. Drückt man nun auf das Häkchen, Tauschen die beiden TextBoxen die Gültigkeit. Nun kann man was in TextBox 2 eintragen, aber nicht mehr in TextBox 1. Weist du wie ich das meine? und hätest du eine Idee? Vielen Dank das du mir schon mal geholfen hast.
Gruß Sören
Anzeige
AW: Checkbox aktiviert Textbox
01.07.2019 20:12:33
Werner
Hallo Sören,
mal was Grundsätzliches: Bitte das eigentliche Vorhaben nicht häppchenweise - macht keinen besonderen Spaß.
Private Sub CheckBox1_Click()
If Not Me.CheckBox1 Then
Me.TextBox1.SpecialEffect = 0
Me.TextBox1.BackColor = &HC0C0C0
Me.TextBox1.ForeColor = &HC0C0C0
Me.TextBox1.Locked = True
Me.TextBox2.SpecialEffect = 2
Me.TextBox2.BackColor = &HFFFFFF
Me.TextBox2.ForeColor = &H80000006
Me.TextBox2.Locked = False
Else
Me.TextBox1.SpecialEffect = 2
Me.TextBox1.BackColor = &HFFFFFF
Me.TextBox1.ForeColor = &H80000006
Me.TextBox1.Locked = False
Me.TextBox2.SpecialEffect = 0
Me.TextBox2.BackColor = &HC0C0C0
Me.TextBox2.ForeColor = &HC0C0C0
Me.TextBox2.Locked = True
End If
End Sub
Private Sub UserForm_Initialize()
Me.CheckBox1 = False
Me.TextBox1.SpecialEffect = 0
Me.TextBox1.BackColor = &HC0C0C0
Me.TextBox1.ForeColor = &HC0C0C0
Me.TextBox1.Locked = True
Me.TextBox2.SpecialEffect = 2
Me.TextBox2.BackColor = &HFFFFFF
Me.TextBox2.ForeColor = &H80000006
Me.TextBox2.Locked = False
End Sub
Gruß Werner
Anzeige
AW: Checkbox aktiviert Textbox
01.07.2019 20:47:58
Sören
Hallo Werner,
vielen Dank für deine Hilfe. Tut mir echt leid. Dachte, wenn ich den Anfang als Code bekomme kann ich den Rest selber basteln. Habe mich da wohl geirrt.
Gruß Sören
Gerne u. Danke für die Rückmeldung. o.w.T.
01.07.2019 20:58:52
Werner
AW: Checkbox aktiviert Textbox
01.07.2019 21:55:16
Daniel
Hi
den Code im Initialize-Event brauchst du nicht unbedingt.
Formatiere die Steuerelemente über die Einstellung im Eigenschaftsfenster so, wie sie zu beginn sein sollen. Das Eigenschaftsfenster stellt die Start-Einstellung dar.
Code im Initialize-Event benötigst du nur, wenn der gewünschte Eigenschaftswert aktuell berechnet werden muss.
ansonsten, probier mal für die Textboxen die Eigenschaft .Enabled = True/False
damit hast du das .Locked und das umfärben in einem Schritt.
Gruß Daniel
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Checkbox aktivieren und Textbox anpassen in Excel


Schritt-für-Schritt-Anleitung

Um eine Checkbox in Excel zu verwenden, die eine TextBox aktiviert oder deaktiviert, gehst du wie folgt vor:

  1. Benutzerformular erstellen:

    • Öffne die Excel-Datei und gehe zum VBA-Editor (Alt + F11).
    • Füge ein neues Benutzerformular hinzu (Rechtsklick auf "VBAProject", dann "Einfügen" > "UserForm").
  2. Steuerelemente hinzufügen:

    • Ziehe eine Checkbox und zwei TextBoxen auf das Benutzerformular.
  3. Code einfügen:

    • Klicke doppelt auf die Checkbox und füge den folgenden Code ein:
    Private Sub CheckBox1_Click()
       If Not Me.CheckBox1 Then
           Me.TextBox1.SpecialEffect = 0
           Me.TextBox1.BackColor = &HC0C0C0
           Me.TextBox1.ForeColor = &HC0C0C0
           Me.TextBox1.Locked = True
           Me.TextBox2.SpecialEffect = 2
           Me.TextBox2.BackColor = &HFFFFFF
           Me.TextBox2.ForeColor = &H80000006
           Me.TextBox2.Locked = False
       Else
           Me.TextBox1.SpecialEffect = 2
           Me.TextBox1.BackColor = &HFFFFFF
           Me.TextBox1.ForeColor = &H80000006
           Me.TextBox1.Locked = False
           Me.TextBox2.SpecialEffect = 0
           Me.TextBox2.BackColor = &HC0C0C0
           Me.TextBox2.ForeColor = &HC0C0C0
           Me.TextBox2.Locked = True
       End If
    End Sub
  4. Initialisierung des Formulars:

    • Klicke doppelt auf das Benutzerformular und füge den folgenden Code in das UserForm_Initialize-Ereignis ein:
    Private Sub UserForm_Initialize()
       Me.CheckBox1 = False
       Me.TextBox1.SpecialEffect = 0
       Me.TextBox1.BackColor = &HC0C0C0
       Me.TextBox1.ForeColor = &HC0C0C0
       Me.TextBox1.Locked = True
       Me.TextBox2.SpecialEffect = 2
       Me.TextBox2.BackColor = &HFFFFFF
       Me.TextBox2.ForeColor = &H80000006
       Me.TextBox2.Locked = False
    End Sub
  5. Benutzerformular testen:

    • Starte das Benutzerformular (F5) und teste die Checkbox. Die TextBoxen sollten entsprechend aktiviert oder deaktiviert werden.

Häufige Fehler und Lösungen

  • Fehler 438: Wenn du die Fehlermeldung "Objekt unterstützt diese Eigenschaft oder Methode nicht" erhältst, stelle sicher, dass der Code im richtigen Modul (UserForm) platziert ist und dass die Steuerelementnamen korrekt sind.

  • TextBox bleibt aktiv: Wenn die TextBox auch ohne Aktivierung der Checkbox bearbeitet werden kann, überprüfe, ob die Locked-Eigenschaft im Code korrekt gesetzt ist.


Alternative Methoden

Eine alternative Methode zur Steuerung der Aktivierung von TextBoxen ist die Verwendung der .Enabled-Eigenschaft:

Me.TextBox1.Enabled = False
Me.TextBox2.Enabled = True

Mit dieser Methode kannst du das Sperren und die Farbänderung in einem Schritt erledigen, was den Code vereinfachen kann.


Praktische Beispiele

Hier ist ein Beispiel für eine Anwendung der Checkbox und TextBoxen:

  • Anwendung: Du kannst ein Formular zur Dateneingabe erstellen, bei dem der Benutzer zwischen zwei TextBoxen wechseln kann, je nachdem, ob die Checkbox aktiviert ist oder nicht.

Tipps für Profis

  • Steuerelemente formatieren: Nutze das Eigenschaftenfenster, um die Standardwerte für die TextBoxen zu setzen, anstatt alles im Code zu definieren. Dies erleichtert die Wartung.

  • Code optimieren: Vermeide redundante Codeschritte, indem du Funktionen erstellst, die wiederverwendet werden können.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die TextBox beim Öffnen des Formulars deaktiviert ist?
Füge den Code zur Initialisierung der TextBox in das UserForm_Initialize-Ereignis ein, wie im Schritt-für-Schritt-Abschnitt beschrieben.

2. Was kann ich tun, wenn die Checkbox nicht funktioniert?
Überprüfe die Namen der Steuerelemente in deinem VBA-Code und stelle sicher, dass sie mit den Namen im Benutzerformular übereinstimmen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige