Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Skript geht nur wenn man Zelle manuell ändert





Frage

Hallo zusammen! Ich habe ein VBA-Skript in Excel, das mit den alten Wert mit dem neuen Wert ein und derselben Zelle vergleicht. Code steht unten. Wenn ich die Zelle manuell ändere, d.h. einen Wert direkt rein schreibe, geht es einwandfrei (z.B. "alter Wert = 1" ändere ich um in "neuer Wert = 2" - das Skript berechnet mit nun die prozentuale Änderung und schreibt sie in Nachbarzelle). Nun ändere ich die Zelle aber nicht selbst, sondern über eine Formel, die aus anderen Zellen den Wert berechnet (also: "alter Wert =G1+G2" wird zu "neuer Wert = G1+G2" (wobei G2 einen anderen Wert hat). Das SKript berechnet mir nun gar nichts. Woran liegt das? Muss ich den Wert erst umformatieren? (Mit der Fkt. =WERT klappt ds nicht). Wäre schön, wenn mir jemand helfen könnte. Grüße Marc [code]Option Explicit Public Alter_Eintrag As Variant Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub Application.EnableEvents = False If Alter_Eintrag <> "" And Target.Cells <> Alter_Eintrag And Not Intersect(Target, [G9, G12, G13, G16, G23, G30, G37, G44, G51, G58, G65, G72, G79, G86, G93, G100, G107, G114, G121, G128, G135, G142, G149, G156]) Is Nothing Then Cells(Target.Row, Target.Column + 1) = (Cells(Target.Row, Target.Column) - Alter_Eintrag) / (Alter_Eintrag) End If Application.EnableEvents = True End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Alter_Eintrag = Target.Cells End Sub[/code]

Antwort 1 von Beverly

Hi Mark,

du musst in diesem Fall die Zellen überwachen, in die du den Wert einträgst, der den Formelwert beeinflusst, nicht die Zelle mit der Formel.

Bis später,
Karin

Antwort 2 von marcjoerg

Hi!

Danke für die Antwort.
Gäbe es auch noch eine andere Möglichkeit, denn in Wirklichkeit ist die Formel etwas (sehr) komplexer als nur G1+G2. Zudem kommt erschwerend hinzu, dass ich den Ursprungswert nichmal selbst hin scheibe sondern duch eine externe Datenquelle (Internet) selbst geholt wird.

Grüße
Marc

Antwort 3 von Beverly

Hi Mark,

dann hast du nur die Möglichkeit, das Worksheet_Calculate Ereignis zu verwenden.

Bis später,
Karin

Antwort 4 von marcjoerg

Hi Karin!

Und das Ereignis "Worksheet_Calculate" macht was?
Ich habe nun verstanden, warum das wohl nicht geht. Denn sobald ich =G1+G2 mache, ändert sich die Zelle ja nicht sondern nur der Wert. Aber das "sieht" das Makro wohl nicht.

Grüße
Marc

Antwort 5 von Beverly

Hi Marc,

Calculate = Berechnung und tritt ein, sobald in der Tabelle eine Berechnung ausgeführt wird, und die Veränderung eines Wertes durch eine Formel ist eine Berechnung.


Bis später,
Karin

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: