Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: TextBox Enabled

TextBox Enabled
Jens
Hallo Excelfreunde,
ich möchte über einen Button eine Textbox innerhalb einer Userform auf enabled =false stellen und über einen zweiten Button wieder auf enabled=true.
Das umschalten klappt in der geöffneten Userform auch super, blos wenn ich die Userform wieder aufrufe, sind die Einstellungen wieder weg!

Private Sub CommandButton4_Click()
TextBox1.Enabled = False
TextBox2.Enabled = False
UserForm1.Repaint
End Sub


Private Sub CommandButton5_Click()
TextBox1.Enabled = True
TextBox2.Enabled = True
UserForm1.Repaint
End Sub

Was mache ich falsch?
Jens B.
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: TextBox Enabled
21.04.2004 11:17:35
Oberschlumpf
Hi Jens
Ein Steuerelement erhält beim erstmaligen Öffnen "seiner" Userform die Eigenschaften, die dem Steuerelement im Entwurfsmodus der Userform zugewiesen wurden.
D.h, wenn Du beim Erstellen einem Textfeld die Eigenschaft
Textbox1.Enabled = True
zuweist, hat dieses Textfeld beim erstmaligen Öffnen der Userform die Eigenschaft
Enabled = True
egal, wie Du diese Eigenschaft während der geöffneten Form änderst.
Eine, vielleicht etwas aufwändige, Lösung wäre es, wenn Du jedesmal beim Klick Deiner Button die zugewiesenen Eigenschaften zusätzlich in eine Datei speicherst, die Du beim nächstmaligen Öffnen der Userform wieder einlesen kannst, um dem Textfeld die darin stehenden Werte zuzuweisen.
So, da dies nun doch alles sehr theoretisch war, und ich nicht weiß, ob ich vielleicht eine Kleinigkeit übersehen habe :-), lasse ich diesen Thread erst mal geöffnet.
Konnte ich denn trotzdem helfen?
Ciao
Thorsten
Anzeige
AW: TextBox Enabled
21.04.2004 11:18:50
Matthias
Hallo Jens,
Es gibt das Ereignis UserForm_Initialize, hier kannst Du alle Einstellungen beim Öfnnen des UserForms einstellen.
Gruß Matthias
P.S.: Ist das Repaint wirklich nötig?
AW: TextBox Enabled
Jens
Habe das Problem gelöst mit folgenden Code:

Private Sub CommandButton5_Click()
TextBox1.Enabled = True
TextBox2.Enabled = True
UserForm1.Repaint
End Sub


Private Sub UserForm_Initialize()
TextBox1.Enabled = False
TextBox2.Enabled = False
End Sub

Den Button für Enabled = False habe ich damit eingespart.
Das Repaint habe ich mit reingenommen, damit in der geöffneten Userform die Ansicht aktualisiert wird.
Vielen Dank!
Jens B.
Anzeige
hab ich wieder was dazu gelernt :-)...o.T.
23.04.2004 23:28:44
Oberschlumpf
;
Anzeige
Anzeige

Infobox / Tutorial

TextBox in Excel VBA aktivieren und deaktivieren


Schritt-für-Schritt-Anleitung

Um eine TextBox in einer Userform in Excel VBA zu aktivieren oder zu deaktivieren, kannst du folgende Schritte befolgen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle eine Userform:

    • Füge eine neue Userform hinzu (Rechtsklick im Projektfenster -> Einfügen -> UserForm).
  3. Füge TextBoxen und Buttons hinzu:

    • Ziehe zwei TextBoxen (TextBox1 und TextBox2) und zwei CommandButtons (CommandButton4 und CommandButton5) auf die Userform.
  4. Füge den Code hinzu:

    • Doppelklicke auf den ersten Button (CommandButton4) und füge folgenden Code ein:
      Private Sub CommandButton4_Click()
       TextBox1.Enabled = False
       TextBox2.Enabled = False
       UserForm1.Repaint
      End Sub
    • Doppelklicke auf den zweiten Button (CommandButton5) und füge diesen Code hinzu:
      Private Sub CommandButton5_Click()
       TextBox1.Enabled = True
       TextBox2.Enabled = True
       UserForm1.Repaint
      End Sub
  5. Setze die Initialzustände:

    • Füge den folgenden Code in das UserForm-Initialize-Ereignis ein, um die TextBoxen standardmäßig deaktiviert zu haben:
      Private Sub UserForm_Initialize()
       TextBox1.Enabled = False
       TextBox2.Enabled = False
      End Sub
  6. Teste die Userform:

    • Starte die Userform und teste die Buttons. Die TextBoxen sollten sich wie gewünscht aktivieren und deaktivieren.

Häufige Fehler und Lösungen

  • Problem: Die TextBox bleibt aktiv, nachdem die Userform neu geöffnet wurde.

    • Lösung: Stelle sicher, dass du die UserForm_Initialize-Ereignisprozedur korrekt verwendet hast, um die TextBoxen beim Öffnen der Userform auf Enabled = False zu setzen.
  • Problem: Der Repaint-Befehl scheint unnötig zu sein.

    • Lösung: In den meisten Fällen ist Repaint nicht erforderlich. Du kannst es weglassen, allerdings kann es in spezifischen Fällen nützlich sein, um die Darstellung der Userform zu aktualisieren.

Alternative Methoden

Eine alternative Methode, um den Status der TextBoxen zu speichern, besteht darin, die Einstellungen in einer Datei zu speichern. Du kannst beim Klicken auf die Buttons die Enabled-Status der TextBoxen in eine Textdatei schreiben und beim nächsten Öffnen der Userform wieder einlesen.


Praktische Beispiele

Hier ist ein einfaches Beispiel zur Veranschaulichung:

Private Sub UserForm_Initialize()
    ' TextBoxen beim Öffnen der Userform deaktivieren
    TextBox1.Enabled = False
    TextBox2.Enabled = False
End Sub

Private Sub CommandButton4_Click()
    ' TextBoxen deaktivieren
    TextBox1.Enabled = False
    TextBox2.Enabled = False
End Sub

Private Sub CommandButton5_Click()
    ' TextBoxen aktivieren
    TextBox1.Enabled = True
    TextBox2.Enabled = True
End Sub

In diesem Beispiel wird die TextBox1 und TextBox2 standardmäßig deaktiviert, und die Buttons aktivieren oder deaktivieren sie entsprechend.


Tipps für Profis

  • Verwende globale Variablen: Du kannst globale Variablen verwenden, um den Status der TextBoxen zu speichern, sodass sie beim Schließen und Öffnen der Userform erhalten bleiben.

  • Erstelle eine Benutzeroberfläche: Denke daran, dass die Benutzeroberfläche intuitiv und benutzerfreundlich sein sollte. Verwende Labels, um den Nutzern zu zeigen, was jeder Button macht.


FAQ: Häufige Fragen

1. Frage
Wie kann ich mehrere TextBoxen gleichzeitig aktivieren oder deaktivieren?
Antwort: Du kannst dies tun, indem du eine Schleife verwendest, um durch alle TextBoxen zu iterieren und deren Enabled-Status zu ändern.

2. Frage
Ist es notwendig, die UserForm_Initialize-Prozedur zu verwenden?
Antwort: Ja, diese Prozedur ist nützlich, um Standardwerte beim Öffnen der Userform festzulegen. Sie stellt sicher, dass deine TextBoxen die richtigen Enabled-Werte haben.

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