Zahlen automatisch zum Wert einer Zelle addierenSie möchten einen Bereich einer Excel-Tabelle so formatieren, dass dort eingegebene Werte zu dem bereits vorhandenen Wert addiert werden. Normalerweise wird mit einer neuen Eingabe in eine Zelle der alte Zellwert überschrieben. Eine vorgefertigte Funktion, die das verhindert, bringt Excel nicht mit. Die Aufgabe lässt sich daher nur mit einem Makro lösen. Bedingung für dieses Makro ist, dass es automatisch startet, sobald Sie eine Eingabe machen. Damit Sie zudem auf die alten Werte der Zellen zugreifen können, die ja nach einer Eingabe gelöscht sind, brauchen Sie noch eine Hilfstabelle. Dorthin soll das Makro die alten Zellinhalte spiegeln.
Zuerst wird mit dem Makro die Variable »testwert« definiert, deren Wert auch nach dem Ende des Makros erhalten bleibt. Das ist nötig, damit sich das Makro nicht endlos wiederholt. Um den Code automatisch auszuführen, verwenden Sie die Funktion »worksheet_change«, die bei jeder Änderung an der Tabelle startet. Nur wenn die Variable »testwert« den Wert »False« hat, werden die dann folgenden Anweisungen des Makros ausgeführt. Das Objekt »ziel« gibt den in der Tabelle markierten Bereich an. Wenn die Anzahl der Elemente ungleich »1« ist, dann sind in der Tabelle mehrere Zellen markiert und das Makro meldet einen Fehler. Mit der nächsten Bedingung umgehen Sie dieses Problem. Die folgenden Zeilen melden den aktuellen Wert der geänderten Zelle sowie ihre Position als Zeile und Spalte. Die weiteren Bedingungen beschränken den Bereich in der Tabelle, in dem die automatische Addition erfolgen soll. Dann wird noch der alte Wert der Zelle aus der Hilfstabelle ausgelesen und die Rechenoperation mit altem und neuem Wert durchgeführt. Der nächste Schritt ist besonders wichtig. Dort wird die Variable »testwert« auf »True« gesetzt, bevor der neu berechnete Wert wieder in die Zelle geschrieben wird. ! Achtung: Ohne diesen Befehl wird das Ergebnis des Makros wieder in die Zelle zurückgeschrieben. Das bedeutet eine weitere Änderung der Tabelle, die wiederum das laufende Makro auslöst. Eine solche endlose Rekursion können Sie aus Excel heraus nicht mehr stoppen. Schließlich muss das Makro den neuen Wert in die Hilfstabelle eintragen. Am Ende des Makros erhält die Variable »testwert« noch den Wert »False«, damit es auch beim nächsten Mal startet. Das Makro ist fertig, aber bevor Sie es endlich einsetzen können, müssen Sie noch die Sicherheitseinstellungen von Excel ändern. Unter »Extras | Makro | Sicherheit« stellen Sie »Mittel« ein. Eine Beispieltabelle finden Sie auf der Heft-CD unter CHIP-Code Addition. |