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

Forumthread: Textbox ansprechen

Textbox ansprechen
Sophie
Hallo zusammen,
hänge irgendwie fest und bekomme folgendes nicht gebacken.
Habe zwei Userform´s.
Userform 1 enthält 5 leere Textboxen
Userform 2 enthält Auswahltexte
So nun soll es so sein, daß Userform 1 sichtbar ist, wenn man in eines der 5 Textboxen klickt, soll nun die Userform 2 geladen werden, in der man sich dann was auswählt. Danach soll diese Auswahl zurückgeschrieben werden, in die Textbox wo man zuvor angeklickt hat.
Klappt soweit fast alles, nur daß ich das zurückschreiben nicht hinbekomme.
Wollte das ganze mit dem "DblClick-Ereignis" umsetzen, aber bekomme es nicht hin.
Wäre dankbar für Eure Hilfe.
Schönen Abend.
Sophie
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Textbox ansprechen
02.12.2010 21:26:12
{Boris}
Hi Sophie,
für die Textbox in Userform1:
Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
UserForm2.Show
End Sub
Im Userform2 sind beispielhaft 2 Labels mit Texten (Captions) hinterlegt. Auf Klick werden diese in Textbox1 von Userform1 übernommen.
Private Sub Label1_Click()
UserForm1.TextBox1 = Me.Label1.Caption
Unload Me
End Sub
Private Sub Label2_Click()
UserForm1.TextBox1 = Me.Label2.Caption
Unload Me
End Sub
Grüße Boris
Anzeige
Warum so? Merke dir doch einfach, welche...
02.12.2010 21:30:12
Luc:-?
…TextBox ausgewählt wurde, Sophie,
(da dürfte bei Reaktivierung ja auch noch der Cursor drin stehen, so dass du ggf den Text gleich einschieben könntest) indem du bspw den Tag-Wert der TextBox setzt. Dann brauchst du bei Reaktivierung von UF1 nur noch durch alle Controls (For Each ct In Me.Controls) nur noch nach diesem Tag-Wert zu suchen (If ct.Tag = … Then…), falls das wie oben geklammert nicht geht. Den Text aus UF2 würde ich ggf in eine Variable lesen, die dann in die o.g.Fml einzusetzen wäre.
Ansonsten ist es natürlich schwieriger, dir die sinnvollste Vorgehensweise zu benennen, wenn man mit den Infos auskommen soll, die du in deiner Frage zV gestellt hast… ;->
Gruß Luc :-?
Anzeige
AW: Warum so? Merke dir doch einfach, welche...
02.12.2010 22:13:24
Sophie
Hallo Luc,
vielen Dank für Deinen Tipp, habe es hinbekommen. Klappt wunderbar.
Schönen Abend.
Sophie
Freut mich! SchöZwAd! Gruß owT
03.12.2010 09:08:48
Luc:-?
:-?
;
Anzeige
Anzeige

Infobox / Tutorial

Textbox in Excel VBA ansprechen und nutzen


Schritt-für-Schritt-Anleitung

Um eine Textbox in Excel VBA anzusprechen, kannst du folgende Schritte befolgen:

  1. Erstelle die UserForms: Du benötigst zwei UserForms. UserForm1 sollte fünf leere Textboxen enthalten, während UserForm2 die Auswahltexte (Labels) enthält.

  2. DblClick-Ereignis programmieren: In UserForm1 fügst du den folgenden Code für das DblClick-Ereignis einer Textbox ein:

    Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
       UserForm2.Show
    End Sub
  3. Labels in UserForm2 programmieren: In UserForm2 fügst du den Code hinzu, um den Text aus den Labels in die Textbox von UserForm1 zu übertragen:

    Private Sub Label1_Click()
       UserForm1.TextBox1 = Me.Label1.Caption
       Unload Me
    End Sub
    
    Private Sub Label2_Click()
       UserForm1.TextBox1 = Me.Label2.Caption
       Unload Me
    End Sub
  4. Tag-Eigenschaft nutzen: Eine bessere Methode ist es, die Tag-Eigenschaft der Textboxen zu nutzen, um zu speichern, welche Textbox angeklickt wurde. Wenn UserForm1 erneut aktiviert wird, kannst du dann den Text in die entsprechende Textbox zurückschreiben.


Häufige Fehler und Lösungen

  • Fehler: Text wird nicht zurückgeschrieben
    Lösung: Stelle sicher, dass der Code in UserForm2 korrekt auf die Textbox in UserForm1 verweist. Verwende die korrekten Namen der Textboxen.

  • Fehler: UserForm2 wird nicht angezeigt
    Lösung: Überprüfe, ob das DblClick-Ereignis korrekt zugeordnet ist.

  • Fehler: Cursor bleibt nicht in der Textbox
    Lösung: Setze den Fokus nach dem Schließen von UserForm2 erneut auf die Textbox.


Alternative Methoden

Eine alternative Methode, um die Textbox in Excel VBA anzusprechen, ist die Verwendung von Variablen. Du kannst den Text in einer Variablen speichern und ihn dann der Textbox zuweisen, wenn UserForm2 geschlossen wird.

Dim selectedText As String

Private Sub Label1_Click()
    selectedText = Me.Label1.Caption
    Unload Me
End Sub

Private Sub Label2_Click()
    selectedText = Me.Label2.Caption
    Unload Me
End Sub

Private Sub UserForm_Activate()
    UserForm1.TextBox1 = selectedText
End Sub

Praktische Beispiele

Wenn du UserForm1 mit fünf Textboxen hast, kannst du die DblClick-Ereignisse für jede Textbox ähnlich wie oben beschrieben einrichten. Hier ist ein Beispiel für die zweite Textbox:

Private Sub TextBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    UserForm2.Show
End Sub

Die Logik in UserForm2 bleibt gleich, aber du kannst den Code so anpassen, dass er auf die aktive Textbox verweist.


Tipps für Profis

  • Verwende die Tag-Eigenschaft: Nutze die Tag-Eigenschaft der Textboxen, um die aktuell bearbeitete Textbox zu identifizieren. Dies verbessert die Wartbarkeit deines Codes erheblich.

  • Fehlerbehandlung einbauen: Implementiere Fehlerbehandlungen, um sicherzustellen, dass dein Programm auch bei unerwarteten Eingaben stabil bleibt.

  • Code modularisieren: Teile deinen VBA-Code in kleinere, übersichtliche Prozeduren auf. So wird die Lesbarkeit und Wartbarkeit erhöht.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Textboxen in UserForm1 ansprechen?
Du kannst für jede Textbox ein eigenes DblClick-Ereignis definieren, oder du kannst eine allgemeine Methode zur Verwaltung der Textboxen erstellen, die die Tag-Eigenschaft nutzt.

2. Was mache ich, wenn die UserForm nicht angezeigt wird?
Überprüfe, ob der Code korrekt ist und ob die UserForm in der richtigen Reihenfolge aufgerufen wird. Stelle sicher, dass die UserForms nicht durch andere Fenster verdeckt sind.

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