Ich habe eine Userform in dieser habe ich zwei Textboxen, den Text aus Textbox1 möchte ich in der Spalte A suchen und wenn gefunden soll der Text aus Textbox2 In Spalte M auf der selben Zeile eingetragen werden.
Gruss Philip
Private Sub CommandButton1_Click()
Dim strSuch As String, raFund As Range
strSuch = Me.TextBox1
If Len(Me.TextBox1) > 0 Then
'Blattnamen anpassen
Set raFund = Worksheets("Tabelle1").Range("A:A").Find(strSuch, LookIn:=xlValues, LookAt:= _
xlWhole)
If Not raFund Is Nothing Then
raFund.Offset(, 12) = Me.TextBox2
Else
MsgBox "Suchbegriff " & Me.TextBox1 & " in Spalte A nicht vorhanden."
End If
End If
Set raFund = Nothing
End Sub
Gruß WernerUserform erstellen: Erstelle eine Userform in Excel mit zwei Textboxen (TextBox1 und TextBox2) und einem CommandButton (CommandButton1).
VBA-Editor öffnen: Gehe zu Entwicklertools > Visual Basic, um den VBA-Editor zu öffnen.
Code hinzufügen: Füge den folgenden Code in das Code-Modul der Userform ein:
Private Sub CommandButton1_Click()
Dim strSuch As String, raFund As Range
strSuch = Me.TextBox1
If Len(Me.TextBox1) > 0 Then
'Blattnamen anpassen
Set raFund = Worksheets("Tabelle1").Range("A:A").Find(strSuch, LookIn:=xlValues, LookAt:= _
xlWhole)
If Not raFund Is Nothing Then
raFund.Offset(, 12) = Me.TextBox2
Else
MsgBox "Suchbegriff " & Me.TextBox1 & " in Spalte A nicht vorhanden."
End If
End If
Set raFund = Nothing
End Sub
Testen: Schließe den VBA-Editor und teste die Userform. Gib einen Wert in TextBox1 ein, der in Spalte A deiner Tabelle vorhanden ist, und einen Wert in TextBox2, der in Spalte M eingetragen werden soll.
Fehler: "Suchbegriff in Spalte A nicht vorhanden."
Fehler: Userform öffnet sich nicht.
Verwendung von Application.Match: Anstelle von .Find kannst du auch die Application.Match-Funktion verwenden, um den Index des gesuchten Wertes zu ermitteln. Diese Methode kann in bestimmten Fällen schneller sein.
Dim matchIndex As Variant
matchIndex = Application.Match(strSuch, Worksheets("Tabelle1").Range("A:A"), 0)
If Not IsError(matchIndex) Then
Worksheets("Tabelle1").Cells(matchIndex, 13).Value = Me.TextBox2
End If
Angenommen, in deiner Excel-Tabelle steht in Zelle A1 das Wort "Excel" und du gibst in TextBox1 "Excel" und in TextBox2 "Tutorial" ein. Nach dem Klick auf den Button wird in Zelle M1 "Tutorial" eingetragen.
Error Handling: Füge einen Fehlerbehandlungsmechanismus hinzu, um unerwartete Fehler elegant zu handhaben. Zum Beispiel:
On Error GoTo ErrorHandler
' Dein Code hier
Exit Sub
ErrorHandler:
MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
Datenvalidierung: Überprüfe die Eingaben in den Textboxen, um sicherzustellen, dass nur gültige Werte eingegeben werden.
1. Frage
Wie kann ich die Userform automatisch öffnen?
Antwort: Du kannst die Userform im Workbook_Open-Ereignis öffnen. Füge den folgenden Code in das ThisWorkbook-Modul ein:
Private Sub Workbook_Open()
UserForm1.Show
End Sub
2. Frage
Kann ich mehrere Werte in TextBox1 suchen?
Antwort: Ja, du kannst eine Schleife verwenden, um mehrere Werte zu überprüfen. Die Find-Methode unterstützt jedoch nur einen einzelnen Suchbegriff auf einmal.