Eingabebestätigung für Excel-Formulare

Ich programmiere unter Excel 97 Formulare, mit denen andere Daten erfassen sollen. Um dem Anwender das Verständnis der Eingabewerte zu vereinfachen, setze ich Vorgabewerte ein. Dabei ergibt sich aber das Problem, daß die Leute nicht sofort erkennen können, ob alle nötigen Angaben gemacht oder noch einige Vorgabewerte zu überschreiben sind. Ich würde deshalb gerne die bereits geänderten Felder in einer anderen Farbe darstellen. Ist das möglich?

Ja, es ist in Excel sogar relativ einfach. Da Sie sicherlich das Formular als Template gestaltet haben, werden die Daten ja nur einmal – bei der Neuanlage des Vorgangs – geändert. Mit Hilfe des Ereignisses SheetChange eines Workbook-Objekts können Sie gezielt auf jede Änderung innerhalb eines Tabellenblatts reagieren. Wenn Sie die Vorgabewerte beispielsweise in Blau eintragen, können Sie die Schriftfarbe nach der Änderung der Zelle in Rot ändern.
Dazu öffnen Sie Ihr Template und führen den Befehl Extras – Makro – Visual Basic Editor aus. Im Editor klicken Sie im Projektfenster doppelt auf den Eintrag Diese Arbeitsmappe. Der Editor öffnet das Code-Fenster des Workbook-Objekts. Sie erkennen das daran, daß im linken Kombinationsfeld Workbook steht. Wählen Sie nun im rechten Kombinationsfenster das Ereignis SheetChange. Der Editor erzeugt einen Prozedurrumpf, den Sie um folgende Zeilen ergänzen:

Private Sub Workbook_SheetChange (ByVal Sh As Object, ByVal Target As Excel .Range)¶
If Sh.Name = ôFormularô Then Target.Font.Color = RGB (255, 0, 0)
End Sub¶
Das Ereignis wird bei jeder Änderung innerhalb dieser Arbeitsmappe automatisch ausgelöst. Der Parameter Sh bezeichnet dabei das von der Änderung betroffene Tabellenblatt, Target gibt den von der Änderung betroffenen Bereich an.
Falls Sie mehrere Tabellenblätter haben, die Änderungen aber nur in einem kennzeichnen möchten, können Sie zunächst die Eigenschaft Name des Tabellenblatts überprüfen. Wenn es sich um das richtige Tabellenblatt handelt, weisen Sie der Eigenschaft Color des Font-Objekts in dem geänderten Bereich die Farbe Rot zu. Und schon haben Sie Ihr Ziel erreicht.