Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

Eingabelänge in TextBox begrenzen und Werte aus Liste übernehmen

Gruppe

TextBox

Problem

Wie kann ich die Eingabelänge in einer Textbox auf 4 begrenzen? Nach Eingabe des 4. Zeichens soll anhand der Eintragung ein Wert aus einer zweiten Tabelle gesucht und in der ersten Tabelle eingetragen werden.

Lösung
Geben Sie den nachfolgenden Code in das Klassenmodul der UserForm ein.

StandardModule: basMain

Sub CallForm()
   frmInsert.Show
End Sub

ClassModule: frmInsert

Private Sub txtInsert_Change()
   Dim vRow As Variant
   Dim iRow As Integer
   If txtInsert.TextLength = 4 Then
      With Worksheets("Datenbank")
         vRow = .Application.Match(txtInsert.Text, .Columns(1), 0)
         If Not IsError(vRow) Then
            iRow = WorksheetFunction.CountA(Columns(1)) + 1
            Cells(iRow, 1).Value = .Cells(vRow, 1).Value
            Cells(iRow, 2).Value = .Cells(vRow, 2).Value
         Else
            Beep
            MsgBox "Wert wurde nicht gefunden!"
         End If
      End With
      With txtInsert
         .SetFocus
         .SelStart = 0
         .SelLength = .TextLength
      End With
   End If
End Sub