Thema Datum  Von Nutzer Rating
Antwort
24.04.2025 17:25:25 Stefan
NotSolved
24.04.2025 18:41:24 Gast85797
NotSolved
24.04.2025 19:18:17 Gast2263
NotSolved
Blau Aktion auslösen beim Verlassen einer TextBox
24.04.2025 20:41:33 xlKing
NotSolved
25.04.2025 19:36:20 Gast79359
NotSolved

Ansicht des Beitrags:
Von:
xlKing
Datum:
24.04.2025 20:41:33
Views:
19
Rating: Antwort:
  Ja
Thema:
Aktion auslösen beim Verlassen einer TextBox

Hi Stefan,

es gibt noch eine Möglichkeit. Probiers mal so:

Code in Userform1

Dim LastControl As MSForms.Control
Dim tbxcoll As New Collection

Private Sub CommandButton1_Click()
  CheckForExit
End Sub

Private Sub CommandButton1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  CheckForExit
End Sub

Private Sub UserForm_Activate()
  CheckForExit
End Sub

Private Sub UserForm_Initialize()
    Dim txt As MSForms.TextBox
    Dim i As Integer
 
    ' Beispiel für 2 Textfelder
    For i = 1 To 2 ' Oder die gewünschte Anzahl von TextBoxen
        ' Dynamische TextBox erstellen
        Set txt = Me.Controls.Add("Forms.TextBox.1", "TxtKanalEckig" & i, True)
         
        ' TextBox-Eigenschaften festlegen
        With txt
            .Left = 10
            .Top = 30 * i
            .Width = 100
            .Height = 20
            .Text = "TextBox " & i
            .Tag = "TextBox" & i ' Zum Identifizieren der TextBox
        End With
        
        tbxcoll.Add New myTextbox
        Set tbxcoll(tbxcoll.Count).tbx = txt
    Next i
    
End Sub
 
Public Sub CheckForExit()
  If Not LastControl Is Nothing Then
    If LastControl.Name <> Me.ActiveControl.Name Then MsgBox LastControl.Name & " wurde verlassen"
  End If
  Set LastControl = Me.ActiveControl
End Sub

Code in einem neuen Klassenmodul namens myTextbox

Public WithEvents tbx As MSForms.TextBox

Private Sub tbx_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  UserForm1.CheckForExit
End Sub

Private Sub tbx_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  UserForm1.CheckForExit
End Sub

Du müsstest quasi für jedes Control, das keine Textbox ist, ein Keyup-Ereignis auslösen, das die Prozedur CheckForExit aufruft.

Gruß Mr. K.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
24.04.2025 17:25:25 Stefan
NotSolved
24.04.2025 18:41:24 Gast85797
NotSolved
24.04.2025 19:18:17 Gast2263
NotSolved
Blau Aktion auslösen beim Verlassen einer TextBox
24.04.2025 20:41:33 xlKing
NotSolved
25.04.2025 19:36:20 Gast79359
NotSolved