Hallo Manni,
das mit deinen Kategorien habe ich nicht nachvollzogen, weil ich dazu keine Zeit aufwenden will. Es geht ja erstmal um das AutoFill. Deine Suchbegriffe sollten nicht Punkte, Doppelpunkte oder andere Sonderzeichen enthalten als den Unterstrich "_".
Ich denke mir deine Suchbegriffe in einer sequentiellen Datei, z.B. "c:\suchbegriffe.txt". Sie können natürlich auch anders vorliegen, dann musst du das Makro anpassen. In einer UserForm fügst du die ComboxBox1 hinzu und schreibst in den Codeteil der UserForm folgenden Text:
Private Sub ComboBox1_Change()
b = ComboBox1.text
a = FreeFile
c = -1: ReDim f(0)
Open "c:\suchbegriffe.txt" For Input As a
Do Until EOF(a)
Input #a, suchbegriff
If LCase(Left(suchbegriff, Len(b))) = LCase(b) Then c = c + 1: ReDim Preserve f(c): f(c) = suchbegriff
Loop
Close a
ComboBox1.List = f
combobox1.dropdown
End Sub
Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Run ComboBox1.text
End Sub
In einem Standardmodul der Arbeitsmappe kannst du für jeden Suchbegriff ein Makro anlegen, das die gewünschte Aktion ausführt
sub Gutschrift()
Abweisungen
end sub
sub Gutschrift_Tagesgeld()
Abweisungen
end sub
Wenn du jetzt die UserForm startest, kannst in das Eingabefeld der ComboBox Zeichen eingeben. Im DropDown-Feld werden alle Suchbegriffe angezeigt, die mit der Eingabe beginnen. Werden weitere Zeichen eingegeben, wird die Auswahl ggf. reduziert, beim Löschen von Zeichen erweitert. Wird das Eingabefeld z.B. mit der Return-Taste verlassen, wird das Makro im Standardmodul mit dem Namen des Textes im Eingabefeld ausgeführt, sofern es existiert.
Gruß
Holger
|