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

Forumthread: UserForm: Ansprechen der aktiven Textbox

UserForm: Ansprechen der aktiven Textbox
02.08.2005 10:13:35
Norman
Hallo zusammen!
Ich habe noch nicht viel Erfahrung mit VBA, ich hoffe ihr könnt mir helfen:
Meine UserForm enthält mehrere Testboxen. Beim Anklicken des 'Ok' Buttons soll z.B. ein Zahlenwert nur in die aktive Textbox (enthält den Curser / focus) geschrieben werden. In der Hilfe fand ich etwas über die 'setfocus' Funktion, was mir aber nicht so viel geholfen hat.
Kennt jemand eine Lösung?
Schon mal vielen Dank,
Gruß
Norman
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UserForm: Ansprechen der aktiven Textbox
02.08.2005 12:03:20
Ralf
Hallo Norman,
zunächst mußt Du vor dem klicken auf den Button ermitteln, welches das aktive Objekt ist (denn sobald Du auf den Button klickst ist dieser aktiv). Also nutzt Du das MouseMove Ereignis. Den ermittelten Namen musst Du aber lokal für dieses Modul deklarieren, vor allen Prozeduren. Hier: tbName
Im Click Ereignis des Buttons durchläufst Du dann alle Steuerungselemente. Falls die Namen übereinstimmen, soll die Textbox hier mit Hallo gefüllt werden.
Empfehlung: Prüfe vorher noch, ob es sich um eine Textbox handelt, ansonsten könnte es Probleme geben.
Option Explicit
Dim tb As Control, tbName$

Private Sub cmdLos_Click()
For Each tb In Controls
If tb.Name = tbName Then tb = "Hallo"
Next
End Sub


Private Sub cmdLos_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
tbName = Me.ActiveControl.Name
End Sub

Ciao, Ralf
Anzeige
AW: UserForm: Ansprechen der aktiven Textbox
02.08.2005 12:35:54
Norman
Hallo Ralf,
vielen Dank für deine Antwort. Ich werd's nachher direkt ausprobieren...es hat mich bis jetzt ziemlich viel Nerven gekostet!
Viele Grüße,
Norman
AW: UserForm: Ansprechen der aktiven Textbox
02.08.2005 13:31:23
Norman
Hallo Ralf,
funktioniert prima!
Vielen Dank,
Gruß
Norman
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

UserForm: Ansprechen der aktiven Textbox in Excel VBA


Schritt-für-Schritt-Anleitung

Um die aktive Textbox in einer UserForm bei einem Klick auf den 'Ok' Button anzusprechen, musst du einige Schritte befolgen. Diese Anleitung setzt voraus, dass du bereits eine UserForm mit mehreren Textboxen und einem Button erstellt hast.

  1. UserForm und Steuerungselemente einrichten: Öffne den Visual Basic for Applications (VBA) Editor in Excel und erstelle deine UserForm mit mindestens einer Textbox und einem Button.

  2. Variablen deklarieren: Du musst eine Variable deklarieren, um den Namen der aktiven Textbox zu speichern. Dies geschieht in der Modul-Deklaration.

    Option Explicit
    Dim tb As Control, tbName As String
  3. MouseMove-Ereignis verwenden: Im 'MouseMove'-Ereignis des Buttons kannst du den Namen des aktiven Steuerelements ermitteln.

    Private Sub cmdLos_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
       tbName = Me.ActiveControl.Name
    End Sub
  4. Click-Ereignis des Buttons programmieren: Nun kannst du das Click-Ereignis des Buttons so programmieren, dass in die aktive Textbox ein Wert eingetragen wird.

    Private Sub cmdLos_Click()
       For Each tb In Controls
           If tb.Name = tbName Then tb = "Hallo"
       Next
    End Sub

Häufige Fehler und Lösungen

  • Fehler: Textbox wird nicht erkannt
    Lösung: Stelle sicher, dass du vor dem Klick auf den Button das MouseMove-Ereignis verwendet hast, um den Namen der aktiven Textbox zu speichern.

  • Fehler: Programm stürzt ab
    Lösung: Überprüfe, ob der Name der aktiven Textbox korrekt zugewiesen wird und ob es sich tatsächlich um eine Textbox handelt. Füge eine Bedingung hinzu, um sicherzustellen, dass nur Textboxen angesprochen werden.


Alternative Methoden

Eine alternative Methode besteht darin, eine ActiveX-Textbox zu verwenden. Diese Möglichkeit bietet erweiterte Funktionen und Anpassungen, erfordert jedoch zusätzliche Programmierungen. Hierbei kannst du direkt mit dem Value-Attribut der Textbox arbeiten, was die Handhabung erleichtert.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du eine UserForm mit einer Textbox und einem Button erstellen kannst:

  1. Erstelle eine UserForm mit einer Textbox (TextBox1) und einem Button (cmdLos).
  2. Implementiere die oben beschriebenen VBA-Codes.
  3. Teste die Funktionalität, indem du den Button klickst, während der Cursor in der Textbox ist.

Das Ergebnis sollte sein, dass "Hallo" in die aktive Textbox geschrieben wird.


Tipps für Profis

  • Nutze die UserForm_Initialize-Methode, um Standardwerte oder Einstellungen festzulegen, wenn die UserForm geöffnet wird.
  • Experimentiere mit verschiedenen Steuerelementen in der UserForm, um deine Excel VBA Kenntnisse zu vertiefen.
  • Verwende excel text box with formula, um dynamische Inhalte in deine Textboxen zu integrieren.

FAQ: Häufige Fragen

1. Was mache ich, wenn die Textbox leer bleibt?
Überprüfe, ob das MouseMove-Ereignis korrekt ausgeführt wird und der Name der Textbox richtig zugewiesen wird.

2. Kann ich mehrere Werte in die Textbox schreiben?
Ja, du kannst die Logik im Click-Ereignis anpassen, um mehrere Werte zu kombinieren, bevor du sie in die Textbox schreibst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige