Auto-Vervollständigen in Excel-Userforms Implementieren
Schritt-für-Schritt-Anleitung
Um eine Textbox in einer Userform mit der Funktion "Auto-Vervollständigen" auszustatten, kannst du folgenden VBA-Code verwenden. Beachte, dass dies in Excel 2003 getestet wurde, aber die Grundzüge für neuere Versionen ähnlich sind.
-
Öffne den Visual Basic-Editor (Alt + F11).
-
Füge eine Userform hinzu und platziere eine Textbox auf der Form.
-
Kopiere und füge den folgenden Code in das Codefenster der Userform ein:
Dim WortListe As Collection
Private Sub UserForm_Initialize()
Set WortListe = New Collection
' Hier die bereits vorhandenen Werte hinzufügen
On Error Resume Next
WortListe.Add "Wert1"
WortListe.Add "Wert2"
WortListe.Add "Wert3"
On Error GoTo 0
End Sub
Private Sub TextBox1_Change()
Dim i As Long
Dim Eingabe As String
Eingabe = Me.TextBox1.Text
If Eingabe = "" Then Exit Sub
For i = 1 To WortListe.Count
If UCase(Left(WortListe(i), Len(Eingabe))) = UCase(Eingabe) Then
Me.TextBox1.Text = WortListe(i)
Me.TextBox1.SelStart = Len(Eingabe)
Exit For
End If
Next i
End Sub
-
Schließe den Editor und teste die Userform.
Häufige Fehler und Lösungen
Alternative Methoden
Statt einer Textbox kannst du auch eine Combobox verwenden. Diese bietet eine eingebaute Autovervollständigung. Hier die Schritte:
- Füge eine Combobox zur Userform hinzu.
- Verwende den
UserForm_Initialize()
-Code, um die Combobox mit Werten zu füllen.
- Die Combobox bietet automatisch die Möglichkeit, durch Eingabe den Dropdown mit vorhandenen Werten zu filtern.
Hier ein Beispielcode für die Combobox:
Private Sub UserForm_Initialize()
With Me.ComboBox1
.AddItem "Wert1"
.AddItem "Wert2"
.AddItem "Wert3"
End With
End Sub
Praktische Beispiele
Ein einfaches Beispiel, das die Funktionalität demonstriert, könnte eine Userform sein, in der Produkte eingegeben werden. Du kannst die Werte für bereits vorhandene Produkte in der Collection festlegen, damit die Eingabe durch Excel-Autovervollständigen erleichtert wird.
Wenn du beispielsweise eine Liste von Produktnamen hast, füge diese in die Collection im UserForm_Initialize()
-Ereignis ein.
Tipps für Profis
- Nutze Fehlerbehandlung im VBA-Code, um potenzielle Probleme beim Hinzufügen von Werten zu vermeiden.
- Halte die Liste der Werte in einer separaten Tabelle und lade diese, um die Wartung zu erleichtern.
- Überlege, ob du die Autovervollständigung in Excel ausschalten möchtest, wenn die Userform aktiv ist, um Verwirrung zu vermeiden.
FAQ: Häufige Fragen
1. Wie kann ich die Auto-Vervollständigen-Funktion deaktivieren?
Du kannst die Auto-Vervollständigung in Excel ausschalten, indem du zu den Optionen gehst und die entsprechenden Kästchen in den Einstellungen für die Bearbeitung abwählst.
2. Funktioniert das auch in neueren Excel-Versionen?
Ja, der grundlegende VBA-Code funktioniert auch in neueren Versionen von Excel, jedoch können die Benutzeroberfläche und die Menüführung leicht variieren.
3. Was ist der Unterschied zwischen Textbox und Combobox?
Eine Textbox erlaubt freie Eingabe, während eine Combobox eine Liste von vorgegebenen Werten bietet, die durch Eingabe gefiltert werden können.