In einer Userform habe ich ca. zwei Dutzend Textfelder, die bei Eingaben teilweise mit Vokabeln belegt
werden.
Parallel dazu führe ich eine Tabelle (d.h. ein Worksheet), in deren Spalte A eine Reihe von Vokabeln
unsortiert stehen, die teilweise mit denen innerhalb der Userform identisch sind. Nun möchte ich durch einen Vergleich der Vokabeln in der Userform mit denen in
genannter Tabelle folgendes bewirken (indem ich auf der Userform einen CommandButton drücke):
1. Die gleiche Vokabel kommt sowohl in der Userform als auch in der Vokabeltabelle vor, dann passiert
nichts.
2. Die Vokabel kommt nur in der Userform vor, aber nicht in der Vokabeltabelle, dann wird sie in
der Vokabeltabelle unten ergänzt
3. Oder die Vokabel kommt nur in der Vokabeltabelle, nicht aber in der Userform vor, dann wird sie
aus der Vokabeltabelle entfernt.
Ich habe mir die folgende Lösung überlegt (als eine Art Systemanalyse dieses Problems):
a) Zuerst eine äußere Schleife bauen, die die Vokabeln in der Userform mit einer Schleife der Reihe nach
durchgeht (die Textfelder tragen alle den Namen "txtvok" plus eine Nummer (1, 2, 3...) am Schluss, damit sie in einer Schleife ansprechbar sind.
b) Dann eine innere Schleife mit Find und FindNext bauen, in der überprüft wird, ob die jeweilige Vokabel
in der Userform auch in der Vokabeltabelle vorkommt. Wenn ja, dann wird die Zelle in der Vokabeltabelle,
die die betreffende Vokabel enthält, innen grau gefärbt (mit ActiveCell.Interior.ColorIndex = 15)
c) Nachdem die genannte innere Schleife abgeschlossen ist, ohne dass die gesuchte Vokabel in der
Vokabeltabelle gefunden wurde, überträgt das Programm sie aus der Userform in die Vokabeltabelle
und stellt sie an deren Schluss.
d) Nun geht der Makro alle weiteren Vokabeln der Userform auf die gleiche Weise durch. Wenn auch die
oben genannte äußere Schleife abgeschlossen ist, sucht der Makro die aktuelle Satznummer mit
Find und FindNext erneut und fragt innerhalb einer neuen, einfachen Schleife mit einer IF-Anweisung,
in welchen Zellen die Hintergrundfarbe ungleich grau ist. Das Programm löscht dann alle Zellen mit
Vokabeln, bei denen dies zutrifft.
e) Nun wird mit einer weiteren einfachen Schleife die Spalte mit den Vokabeln erneut durchlaufen und
die graue Hintergrundfarbe entfernt.
Wie ein solches Programm zu schreiben wäre, ist mir im großen und ganzen schon klar, nur weiß ich nicht, ob obige Systemanalyse tatsächlich eine der besseren Lösungen darstellt. Oder hat jemand einen deutlich besseren Vorschlag für eine Analyse dieser Problematik? Bin dankbar für Vorschläge. Werner R.