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

Default Werte Textbox/Userform

Forumthread: Default Werte Textbox/Userform

Default Werte Textbox/Userform
11.11.2008 11:33:13
Christoph
Hallo Zusammen,
ich habe ein kleines Problem, leider habe ich keinen passenden Beitrag gefunden.
Situation ist die folgende:
Über eine Userform, sollen Stammdaten bearbeitet werden. Ursprünglich wurde das mit einer Inputbox gelöst, funktionierte auch wunderbar. (Denke man kann von Ausgehen, dass das zeigt, dass der grundlegende Aufbau passt ).
Bei einer jetzt stattfindenen Erweiterung soll es ermöglicht werden, dass mehr Infos verarbeitet werden können, bzw. Dinge wie Zeilenumbrüche etc. verwendet werden können.
Deswegen habe ich eine Userform entworfen mit einer Textbox zur Eingabe. Funktioniert auch wunderbar. Was ich nicht hinbekomme ist allerdings, dass der ursprüngliche Wert der Zelle in der Textbox angezeigt wird, so wie ich es bei der InputBox über 'Default' lösen konnte. (Quasi als Vorschlag für den User).
Könntet Ihr mir da auf die Sprünge helfen?
Das ist der Code der bisher hinter meiner UserForm steht:

Private Sub UserForm_Initialize()
End Sub



Private Sub CommandButton1_Click()
new_value = TextBox1.Text
ICA.Hide
End Sub



Private Sub CommandButton2_Click()
ICA.Hide
End Sub



Private Sub TextBox1_Change()
End Sub


Vielen Dank schonmal
Beste Grüße
Christoph

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Default Werte Textbox/Userform
11.11.2008 11:47:00
Beverly
hi Christoph,
nach diesem Prinzip

Private Sub UserForm_Initialize()
TextBox1 = Worksheets("Stammdaten").Range("A10")
End Sub




AW: Default Werte Textbox/Userform
11.11.2008 12:59:34
Christoph
Hallo Karin,
herzlichen Dank schonmal für Deine Antwort. Leider bringt diese Variante nicht den gewünschten Erfolg. Ich hatte das so schonmal probiert, das Problem ist aber folgendes:
Dieser Einbgabedialog wird zur Modifikation von mehreren Zellen verwendet. Beim ersten Aufruf geht das wunderbar, sobald ich aber einmal etwas in die Textbox eingegeben habe und dann eine andere Zelle bearbeiten will (oder die erste erneut), wird der Default aus dem Initializebereich nicht mehr angewendet.
Nach Schließen und Öffnen der Datei, funktioniert es wieder einmal.
Gibt es eine Möglichkeit / Befehl die Userform quasi zu 'resetten'? Oder generell eine Alternative?
Vielen Dank schonmal für Deine Mühen
Anzeige
AW: Default Werte Textbox/Userform
11.11.2008 13:28:22
Rudi
Hallo,
dann nimm das Activate-Ereignis.
Private Sub UserForm_Activate()
Gruß
Rudi
AW: Default Werte Textbox/Userform
15.11.2008 06:13:00
Holger
Hallo Rudi,
versuche mal folgendes,

Private Sub "ComboBox1"_AfterUpdate()
hier müsste dein Code rein
End Sub


wobei ComboBox1 bei dir durch Textbox ersetzt werden muss.
Holger

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige

Infobox / Tutorial

Default Werte in Textboxen der Userform setzen


Schritt-für-Schritt-Anleitung

  1. UserForm erstellen: Öffne Excel und erstelle eine Userform mit einer Textbox und zwei CommandButtons.

  2. Code hinzufügen: Füge den folgenden Code in den Code-Editor der Userform ein:

    Private Sub UserForm_Initialize()
       TextBox1.Value = Worksheets("Stammdaten").Range("A10").Value
    End Sub

    Dieser Code sorgt dafür, dass beim Öffnen der Userform der default wert aus der Zelle A10 in der Textbox angezeigt wird.

  3. Reset der Userform: Um die Userform zurückzusetzen, füge den folgenden Code in die UserForm_Activate-Prozedur ein:

    Private Sub UserForm_Activate()
       TextBox1.Value = Worksheets("Stammdaten").Range("A10").Value
    End Sub

    Dies stellt sicher, dass bei jedem Aktivieren der Userform der default wert aktualisiert wird.

  4. Werte speichern: In der CommandButton1_Click-Prozedur speicherst du den Wert aus der Textbox zurück in die Zelle:

    Private Sub CommandButton1_Click()
       Worksheets("Stammdaten").Range("A10").Value = TextBox1.Text
       Me.Hide
    End Sub

Häufige Fehler und Lösungen

  • Fehler: Default-Wert wird nicht angezeigt: Wenn der default wert beim erneuten Öffnen der Userform nicht gesetzt wird, stelle sicher, dass du den UserForm_Activate-Event korrekt implementiert hast.

  • Fehler: Werte werden nicht gespeichert: Überprüfe, ob der Code in CommandButton1_Click korrekt auf die richtige Zelle verweist und dass die Userform bei der Aktivierung nicht geschlossen ist.


Alternative Methoden

  • Du könntest auch die TextBox1_Change-Ereignisprozedur nutzen, um den default wert dynamisch zu aktualisieren, während der Benutzer die Eingabe macht. Allerdings ist dies weniger üblich und könnte zu Verwirrung führen.

  • Eine weitere Möglichkeit wäre die Verwendung von ComboBoxen, die es dir ermöglichen, vordefinierte Werte auszuwählen. Hierbei solltest du jedoch sicherstellen, dass du den richtigen Code in der ComboBox1_AfterUpdate-Prozedur implementierst.


Praktische Beispiele

Angenommen, du möchtest den default wert aus einer anderen Zelle (z.B. B10) beziehen:

Private Sub UserForm_Initialize()
    TextBox1.Value = Worksheets("Stammdaten").Range("B10").Value
End Sub

Solltest du mehrere Textboxen haben, kannst du diesen Code für jede Textbox anpassen und den jeweiligen Bereich referenzieren.


Tipps für Profis

  • Verwende Trim-Funktionen, um sicherzustellen, dass keine überflüssigen Leerzeichen im default wert gespeichert werden.

  • Mache Gebrauch von Option Explicit am Anfang deiner Module, um sicherzustellen, dass alle Variablen deklariert sind und somit Fehler vermieden werden.

  • Dokumentiere deinen Code gut, damit du später nachvollziehen kannst, warum du bestimmte Entscheidungen getroffen hast.


FAQ: Häufige Fragen

1. Frage
Wie kann ich mehrere Textboxen mit default Werten befüllen?
Du kannst einfach für jede Textbox eine entsprechende UserForm_Initialize-Zuweisung hinzufügen:

TextBox2.Value = Worksheets("Stammdaten").Range("B10").Value

2. Frage
Kann ich die Sichtbarkeit der Textbox dynamisch ändern?
Ja, du kannst die Sichtbarkeit der Textbox basierend auf bestimmten Bedingungen steuern, indem du in den entsprechenden Ereignisprozeduren TextBox1.Visible = False oder TextBox1.Visible = True verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige