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

Userform nach Eingabe in Textfeld schließen

Forumthread: Userform nach Eingabe in Textfeld schließen

Userform nach Eingabe in Textfeld schließen
02.03.2009 15:10:21
Jakob
Hallo,
ich habe eine Userform erstellt mit einen Textfeld. Die Eingabe wird auch korrekt in die entsprechende zelle geschrieben. Nun habe ich noch 2 Fragen dazu:
- kann ich die Eingabe in den Textfeld einschränken (Eingabe nur aus 2 Buchstaben möglich z. Bsp. "MX")?
- kann ich die Userform nach betätigen der Enter-Taste schließen? Irgendwie bekomme ich es nicht hin für die Userform einen Code einzugeben
Vielen Dank.
Gruß,
Jakob
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform nach Eingabe in Textfeld schließen
02.03.2009 15:26:08
Renee
Hi Jakob,
Frage1: ...Textfeld einschränken (... z. Bsp. "MX")?
Ja. Entweder im TextBox1_Change Event oder aber, wenn mehrere fixe Wert besser eine Listbox oder CombBox nehmen!
Frage2: ...Irgendwie bekomme ich es nicht hin
Doppelklicken des Steuerelements in der UF Entwurfsmodus und ggf. entsprechendes Ereignis des Steuerelements rechts oben im DropDown auswählen.
GreetZ Renée
Anzeige
AW: Userform nach Eingabe in Textfeld schließen
02.03.2009 16:28:51
Jakob
Hallo Hary,
mit den CommandButton und den folgenden Code funktioniert das schließen der Userform nach der Betätigung der Entertaste:

Private Sub CommandButton1_Enter()
[G6] = Me.TxtLand.Value
Unload Landauswahl
End Sub


Der 2. code in Deiner Beispieldatei funktioniert dagegen nicht. Wenn ich diesen Code eingebe wird keine Eingabe im Textfeld "TxtLand" erlaubt.


Private Sub TxtLand_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Len(TxtLand) 


Woran liegt das?
Gruß,
Jakob

Anzeige
AW: Userform nach Eingabe in Textfeld schließen
02.03.2009 16:37:11
hary
Hallo Jackob
Es sind nur Gross Buchstaben zugelassen.
Gruss Hary
AW: Userform nach Eingabe in Textfeld schließen
02.03.2009 16:00:20
Jakob
Hallo Renée,
Frage 2 haut immer noch nicht hin. Ich habe eine Userform mit den Namen "Land" und ein Textfeld Namens "TxtLand". Bei den Textfeld (rechte Maus/Code anzeigen) habe ich den folgenden Code eingegeben:

Private Sub TxtLand_Change()
[G6] = Me.TxtLand.Value
End Sub


Der Userform "Land" kann ich keinen Code hinzufügen, d.h. beim betätigen der Rechten Maus kommt kein Kontextmenü. Ich habe auch versucht an der Stelle wo ich den Code für das Textfeld eingebe folgenden Code einzugeben:


Private Sub Land_Enter()
Unload Land
End Sub


Das funktioniert aber nicht.
Was mache ich falsch?
Gruß,
Jakob

Anzeige
AW: Userform nach Eingabe in Textfeld schließen
02.03.2009 16:44:54
hary
Hallo Jackob
ich nochmal. Mit der EnterTaste hab ich noch nicht raus. Zugelassen sind nur Grossbuchstaben. Wenn Du nach dem zweiten Buchstaben nochmal auf einen Buchstaben drueckst, geht die Form zu und Eintrag in Zelle A1. Teste mal in einer leeren Mappe.
Nimm mal diesen Code:

Private Sub TxtLand_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Len(TxtLand) 


Gruss Hary

Anzeige
AW: jetzt gehts mit Enter, getestet
02.03.2009 18:20:37
hary
Hallo Jakob
jetzt geht's. Brauchte 2ten Code fuer die Entertaste.

Private Sub TxtLand_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
Cells(1, 1) = TxtLand        'Hier rein in welche Zelle der Inhalt soll
UserForm1.Hide
End If
End Sub
Private Sub TxtLand_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Len(TxtLand) 


Gruss Hary

Anzeige
AW: jetzt gehts mit Enter, getestet
03.03.2009 09:19:19
Jakob
Hallo Hary,
perfekt.
Vielen Dank für Deine Hilfe.
Gruß,
Jakob
;
Anzeige
Anzeige

Infobox / Tutorial

Userform nach Eingabe in Textfeld schließen


Schritt-für-Schritt-Anleitung

Um eine Excel Userform nach der Eingabe in ein Textfeld zu schließen, befolge diese Schritte:

  1. Userform erstellen: Erstelle eine Userform in Excel mit einem Textfeld (z. B. "TxtLand") und einem CommandButton.

  2. Eingabe einschränken: Füge den folgenden Code ins Textfeld-Change-Ereignis ein, um die Eingabe auf zwei Großbuchstaben zu beschränken:

    Private Sub TxtLand_Change()
        If Len(Me.TxtLand.Text) > 2 Then
            Me.TxtLand.Text = Left(Me.TxtLand.Text, 2)
        End If
    End Sub
  3. Userform schließen: Um die Userform beim Drücken der Enter-Taste zu schließen, verwende den folgenden Code im KeyDown-Ereignis des Textfelds:

    Private Sub TxtLand_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
        If KeyCode = vbKeyReturn Then
            Cells(1, 1).Value = Me.TxtLand.Value ' Hier wird der Wert in die Zelle geschrieben
            Unload Me ' Userform schließen
        End If
    End Sub
  4. Testen: Starte die Userform und teste die Eingabe sowie die Funktionalität des Schließens.


Häufige Fehler und Lösungen

  • Fehler beim Schließen: Wenn die Userform nicht schließt, prüfe, ob der Code im richtigen Ereignis platziert ist. Der KeyDown-Code muss im Textfeld „TxtLand“ sein.

  • Eingabe wird nicht akzeptiert: Stelle sicher, dass die Eingabebeschränkung im Change-Ereignis korrekt implementiert ist.

  • Code wird nicht ausgeführt: Achte darauf, dass die Userform im Entwurfsmodus geöffnet ist, wenn Du den Code hinzufügst.


Alternative Methoden

Falls Du die Userform auf andere Weise schließen möchtest, kannst Du auch einen CommandButton verwenden:

  1. Füge einen CommandButton hinzu.
  2. Verwende den folgenden Code im Click-Ereignis des Buttons:
    Private Sub CommandButton1_Click()
        Cells(1, 1).Value = Me.TxtLand.Value
        Unload Me
    End Sub

Dies ermöglicht es dir, die Userform mit einem Mausklick zu schließen.


Praktische Beispiele

Ein häufiges Szenario könnte sein, dass Du eine Liste von Ländern in einem Textfeld erfassen möchtest. Hier ist ein Beispiel, wie Du die Eingabe auf zwei Buchstaben beschränken und die Userform schließen kannst:

Private Sub TxtLand_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = vbKeyReturn Then
        If Len(Me.TxtLand.Text) = 2 Then ' Überprüfen, ob genau 2 Zeichen eingegeben wurden
            Cells(1, 1).Value = Me.TxtLand.Value
            Unload Me
        Else
            MsgBox "Bitte genau 2 Buchstaben eingeben."
        End If
    End If
End Sub

Tipps für Profis

  • Verwendung von ListBox oder ComboBox: Wenn Du nur eine Auswahl von Werten zulassen möchtest, überlege, eine ListBox oder ComboBox zu verwenden. Dies kann die Eingabe vereinfachen und Fehler reduzieren.

  • Ereignisse gezielt nutzen: Nutze die verschiedenen Ereignisse in VBA, um spezifische Funktionen zu implementieren. Zum Beispiel KeyPress für die Eingabeüberwachung.


FAQ: Häufige Fragen

1. Wie kann ich die Eingabe auf Großbuchstaben beschränken?
Du kannst die Eingabe im KeyPress-Ereignis umwandeln:

Private Sub TxtLand_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    KeyAscii = UCase(KeyAscii) ' Wandelt die Eingabe in Großbuchstaben um
End Sub

2. Was ist der Unterschied zwischen Unload und Hide?
Unload entfernt die Userform aus dem Speicher, während Hide sie nur ausblendet. Verwende Unload, wenn Du die Userform vollständig schließen möchtest.

3. Kann ich auch andere Steuerelemente verwenden?
Ja, Du kannst auch andere Steuerelemente wie ComboBox oder ListBox verwenden, um die Eingabe zu steuern und die Userform zu schließen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige