ich habe eine Frage zur Makroprogrammierung unter Verwendung des ModifyListener.
Mein Wunsch ist in einer Tabelle, die Gewinn und Verlust-Rechnung beinhaltet, für die Ausgaben in den Spalten Netto/Brutto, MwSt und MwSt-Satz automatisch bei festem MwSt-Satz je nach Eingabe jeweils Brutto oder Netto entsprechend zu bestimmen und in dem aktuellen Feld darzustellen. Also der MwSt-Satz ist fest, bei Eingabe von Netto wird Brutto bestimmt und umgekehrt.
In Tabellenkalkulationen anderer Hersteller habe ich gelesen geht das offenbar mit:
Code: Alles auswählen
Private Sub Worksheet_Change(ByVal Target As Range)
Also baue ich einen ModifyListener und registriere ihn auf die beiden Spalten Netto und Brutto. So weit so gut.
Aber nun ändere ich einen Wert, der neue Wert wird korrekt bestimmt und in die andere Spalte eingetragen, hier feuert aber das ModifyEvent und startet wiederum den Listener, der wiederum den anderen Wert berechnet, ihn wieder in die Spalte der ersten Änderung einträgt und damit wieder den ModifyEvent der ersten Spalte feuert usw. Nicht so toll

Soll ich also nun vor Eintragen des neu bestimmten Wertes den Listener der Zielzelle deaktivieren? Geht das mit removeModifyListener?
Soll ich zwei unterschiedliche Listener registrieren? Hilft das?
Kann ich den Wert einer Zelle ändern ohne den ModifyListener zu aktivieren?
Gibt es eine andere Coole Lösung die ich bisher nur nicht gefunden habe?
Mein Code wird langsam etwas unübesichtlich, wenn man die propagierte Lösung von Tabellenkalkulationen anderer Hersteller so anschaut.....
Ist die Anforderung Käse?
Auf Drittspalten (Trennung von Eingabe und Anzeige) usw. habe ich eigentlich keine Lust, das wirkt dann unelegant IMHO.
Vielen Dank für Gedanken Antworten und Anregungen.
Grüße