UserForm - Suchen - Ändern - Neu anlegen!

Frage aus dem Herber-Forum: Über eine UserForm soll in einem Tabellenblatt in Spalte A der in einer TextBox1 eingegebene Wert gesucht werden. Wird er gefunden soll in TextBox2 der korrespondierende Wert aus Spalte B angezeigt werden. Änderungen können nun vorgenommen und anschließend in das Tabellenblatt an die entsprechende Stelle zurück gespeichert werden. Ist der Wert nicht vorhanden, soll er am Ende neu angelegt werden.

UserForm - Suchen - Ändern - Neu anlegen...[ZIP, 60 KB]

' Code gehört in UserForm1

Option Explicit
Private Sub TextBox1_Change()
Dim varTMP As Variant
With Tabelle2
varTMP = Application.Match(TextBox1.Text, .Range("A:A"), 0)
If Not IsError(varTMP) Then
Me.Tag = varTMP
TextBox2.Text = .Cells(varTMP, 2).Value
Else
Me.Tag = ""
TextBox2.Text = ""
End If
End With
End Sub
Private Sub CommandButton1_Click()
Dim lngRow As Long
If Trim(TextBox1.Text) <> "" And Trim(TextBox2.Text) <> "" Then
If Me.Tag <> "" Then
With Tabelle2
.Cells(Me.Tag, 1).Value = TextBox1.Text
.Cells(Me.Tag, 2).Value = TextBox2.Text
End With
Else
With Tabelle2
lngRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Cells(lngRow, 1) = TextBox1.Text
.Cells(lngRow, 2) = TextBox2.Text
End With
End If
TextBox1.Text = ""
TextBox2.Text = ""
Else
MsgBox ("Eingabe unvollständig!")
TextBox1.SetFocus
End If
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii >= Asc("a") And KeyAscii <= Asc("z") Then _
KeyAscii = KeyAscii + Asc("A") - Asc("a")
End Sub
Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii >= Asc("a") And KeyAscii <= Asc("z") Then _
KeyAscii = KeyAscii + Asc("A") - Asc("a")
End Sub

Kommentare

Beliebte Posts aus diesem Blog

Formeln - auch Array - per VBA eintragen...

Alle Dateien eines Ordners - Optional mit Unterordner

Excel -> Word in Textmarken (Bookmarks)...