Nach Eintrag in Zelle genau einmal aktualisieren

DerRiese

Grünschnabel
Hallo Leute,

lang ists her dass ich Hilfe gebraucht habe.

ich bastle gerade an ner Berechnungsabfrage.

Zwei Werte muss bzw soll der benutzer dafür eintragen.
der eine wert ist die entfernung (Zelle A2) und der andere Wert ist die Leistung (Zelle A5).
nun soll mir Excel nur die Formeln eintragen und das genau einmal nachdem ich die entfernung oder die Leistung eingetragen habe.

mit der folgenden methode springt mir das prog zwar ordnungsgemäß in die aktualisierung aber in einer endlosschleife, da ja bei worksheet_change immer dann wieder was gemacht wird wenn eine änderung auftritt und da ich wie unten zu sehen ist einige werte eintragen lasse wird permanent was geändert.

kann ich das programm oder die anweisung so umstellen dass Excel nach der user eingabe die ganze funktion nur EINMAL ausführt?


Private Sub Worksheet_Change(ByVal Target As Range)

Range("A9").Select
ActiveCell.FormulaR1C1 = "=20*LOG(SQRT(R[-4]C)*7*1e6/(R[-7]C))"
Range("A15").Select
ActiveCell.Formula = "=$A$9-$A$12"
Range("B15").Select
ActiveCell.Formula = "=$A$9-$B$12"
Range("C15").Select
ActiveCell.Formula = "=$A$9-$C$12"
Range("A18").Select
ActiveCell.Formula = "=(R[-3]C)+32.57-(20*LOG(R[-16]C[4]))"
Range("B18").Select
ActiveCell.Formula = "=(R[-3]C)+32.57-(20*LOG(R[-16]C[3]))"
Range("C18").Select
ActiveCell.Formula = "=(R[-3]C)+32.57-(20*LOG(R[-16]C[2]))"
Range("A2").Select

Call Grenzwert

End Sub



Danke im Voraus
 
Integriere doch in deine Funktion eine Abbruchbedingung.
Entweder du brichst ab wenn schon das drinsteht, was du reinschreiben möchtest oder du brichst, ab wenn eine Formel drinsteht.
 
das problem ist nicht dass er mir die formeln einfüllen soll (ist nur ein schutz damit man sie nicht ausversehen löscht).

sondern dass er mir nach der eingabe in zelle X die tabelle oder die seite aktualisieren soll. wie kann ich das denn bewerkstelligen?
übder die Update funktion auf die art?

private zelle x_change ?


geht das überhaupt

greez
 
Du könntest ja Abfragen, ob die Änderung genau die Besagte Zelle betrifft:
wobei X bzw. Y die Position der besagten Zelle entspricht, du also dort konkrete Zahlen
hinterlegen müsstest.
Visual Basic:
    If Target.Column = X And Target.Row = Y Then
        DeinCode()
    End If
 
Zurück