Worksheet_Change(ByVal Target As Range)
06.03.2009 15:21:33
Axel
Aufgabenstellung:
Ich möchte in einer Zelle einen Wert schreiben, was ein Makro auslösen soll. In einer Zweiten soll dadurch automatisch eine Umrechenformel einfügt werden. Auf diese Weise kann man (trivial, nur als Beispiel) bei der Bedienung eines Sheets eine Temperatur entweder in °C oder Kelvin eintragen, in der jeweils anderen Zelle erscheint die Formel / die umgerechnete Temperatur: Eingetragene Temperatur±273°, je nach dem.
Problem:
Wenn ich es über angehängten Code mache, schreibt er (nachdem Zelle1 das Makro ausgelöst hat) brav in Zelle2 meine Formel. ABER: Zelle2 ist auch mit einem Intersect-Befehl ausgestattet. D.h. das Schreiben der Formel löst das gleiche Makro erneut aus und in Zelle1 wir eine Formel geschrieben. Was wiederum das Schreiben der Formel in Zelle2 auslöst... eine schöne "Art Zirkelbezug" auf Programierungsebene.
Sagte ich das hier schon? HILFE!
Na, dann ist es ja jetzt gesagt.
Und so schließe ich ab wie ich begonnen habe: schönes Wochende!
Private Sub Worksheet_Change(ByVal Target As Range)
'C10 = °C-Zelle
'C11 = Kelvin-Zelle
If Not Intersect(Target, Range("C10")) Is Nothing Then
Range("C11").FormulaR1C1 = "=ROUND(R[+1]C+273,2)"
End If
If Not Intersect(Target, Range("C11")) Is Nothing Then
Range("C10").FormulaR1C1 = "=ROUND(R[-1]C-273,2)"
End If
End Sub
Anzeige