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

Forumthread: ActiveX TextBox: Wie im VBA Code ansprechen

ActiveX TextBox: Wie im VBA Code ansprechen
Holger
Guten abend,
ich habe eine ActiveX TextBox in die Tabelle eingefügt und
möchte diese nun per VBA Code ansprechen.
Im Detail soll der Focus auf die TextBox gelegt werden und
der User muss etwas eingeben. Ansonsten soll es nicht weitergehen.
Wie geht sowas denn?
Meine ersten Versuche scheitern alle kläglich, kein Objekt vorhanden.
Hier meine zwei Codezeilen:
Private Sub Workbook_Open()
TextBox1.Activate
If TextBox1.Text = "Hallo" Then
MsgBox "Super"
Else
MsgBox "Shit"
End If
End Sub

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: ActiveX TextBox: Wie im VBA Code ansprechen
26.10.2010 19:49:23
Uduuh
Hallo,
in dieseArbeitsmappe:
Private Sub Workbook_Open()
With Sheets(1)
.Activate
.TextBox1.Activate
End With
End Sub

in die Tabelle:
Private Sub TextBox1_LostFocus()
If TextBox1.Text = "Hallo" Then
MsgBox "Super"
Else
MsgBox "Shit"
End If
End Sub

wird ausgeführt, wenn die Textbox verlassen wird.
Gruß aus’m Pott
Udo

Anzeige
Soweit ...
26.10.2010 20:06:38
Holger
Hallo Udo,
klasse, nur wie zwinge ich den User etwas einzugeben bzw die Eingabe nicht zu übergehen? Bei Falscheingabe wieder woanders hinspringen oder einen Durchlauf oder Workbook schliessen?
Es soll eine einfache Passwortabfrage werden.
Noch eine Frage
26.10.2010 20:09:22
Holger
Hi nochmal,
wenn der User etwas eingibt, wird die Prüfung ja erst aktiviert sobald
er das Textfeld verlässt. Gibt es kein ereigis, welches ausgelöst werden kann, wenn der JUser z.B die eingabe durch enter bestätigt oder dergleichen?
Anzeige
Himmel, warum geht das nicht?
26.10.2010 20:31:52
Holger
Habe gerade eine neue Idee:
Mit dem Ereignis _KeyPress könnte ich doch etwas anfangen.
Entweder wenn Key = Return oder Zeichen = fünf oder sowas.
Wie könnte sowas gehen?
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii.Value = Return  Then MsgBox "return"
End Sub

Anzeige
AW: Himmel, warum geht das nicht?
26.10.2010 20:58:55
hary
Hallo Holger

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then MsgBox "return"
End Sub

hilft's?
gruss hary
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

ActiveX TextBox im VBA ansprechen und nutzen


Schritt-für-Schritt-Anleitung

  1. ActiveX TextBox einfügen: Öffne Excel und gehe zu den Entwicklertools. Wähle "Einfügen" und dann die ActiveX TextBox aus. Platziere sie auf deinem Arbeitsblatt.

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

  3. Code im Arbeitsblatt einfügen: Klicke auf das entsprechende Arbeitsblatt in der Projektübersicht und füge den folgenden Code in das Workbook_Open-Ereignis ein:

    Private Sub Workbook_Open()
       TextBox1.Activate
    End Sub
  4. Eingabe validieren: Um sicherzustellen, dass der Benutzer etwas eingibt, kannst du den LostFocus-Ereignis verwenden:

    Private Sub TextBox1_LostFocus()
       If TextBox1.Text = "" Then
           MsgBox "Bitte eine Eingabe tätigen!"
           TextBox1.Activate
       End If
    End Sub
  5. Eingabe durch Enter bestätigen: Um die Eingabe mit der Enter-Taste zu bestätigen, füge den folgenden Code im KeyDown-Ereignis der TextBox ein:

    Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
       If KeyCode = 13 Then
           If TextBox1.Text = "Hallo" Then
               MsgBox "Super"
           Else
               MsgBox "Falsches Passwort!"
               TextBox1.Activate
           End If
       End If
    End Sub

Häufige Fehler und Lösungen

  • Fehler: Kein Objekt vorhanden: Dieser Fehler tritt auf, wenn die TextBox nicht richtig benannt oder nicht im richtigen Kontext angesprochen wird. Überprüfe den Namen der TextBox im Eigenschaftenfenster.

  • Fehler: Eingabe wird ignoriert: Stelle sicher, dass der Code für die ActiveX TextBox korrekt im UserForm oder dem Arbeitsblatt eingebettet ist.


Alternative Methoden

Falls du keine ActiveX TextBox nutzen möchtest, kannst du auch eine Formularsteuerelement TextBox verwenden. Der Code zur Validierung bleibt sehr ähnlich, jedoch muss die Referenz zur TextBox entsprechend angepasst werden.


Praktische Beispiele

Hier ist ein einfaches Beispiel für die Nutzung einer ActiveX TextBox in einem Login-Szenario:

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
        If TextBox1.Text = "Passwort" Then
            MsgBox "Willkommen!"
        Else
            MsgBox "Zugriff verweigert!"
            TextBox1.Text = ""
            TextBox1.Activate
        End If
    End If
End Sub

Tipps für Profis

  • Verwendung von With-Anweisung: Um den Code leserlicher zu machen, kannst du die With-Anweisung verwenden:

    With TextBox1
       .Text = "Neuer Text"
       .Activate
    End With
  • Ereignisprozeduren optimieren: Achte darauf, dass du nur die notwendigen Ereignisse verwendest, um die Performance zu verbessern.


FAQ: Häufige Fragen

1. Wie kann ich die TextBox formatieren? Du kannst die Eigenschaften der ActiveX TextBox im Eigenschaftenfenster des VBA-Editors anpassen.

2. Kann ich mehrere ActiveX TextBoxen verwenden? Ja, du kannst mehrere ActiveX TextBoxen hinzufügen und für jede ihre eigenen Ereignisprozeduren schreiben.

3. Was ist der Unterschied zwischen ActiveX und Formularsteuerelementen? ActiveX TextBoxen bieten mehr Funktionalität und Flexibilität, während Formularsteuerelemente einfacher zu verwenden sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige