Excel Werte Aus A1 in A2 addieren?

4 Antworten

Das geht.

Als erstes musst du in den Excel-Optionen im Reiter "Formeln" und dort unter "Berechnungsoptionen" die "Iterative Berechnung" aktivieren. Außerdem musst du dort die "Maximale Iterationszahl" auf 1 stellen (Excel 2007).

Dann gibst du in die Zelle A2 einfach folgende Formel ein:

=A1+A2

Jetzt wird jedes mal, wenn du einen Wert in A1 eingibst, dieser Wert zu A2 hinzuaddiert.

Das gilt natürlich auch für versehentlich falsch eingegebene Werte. Wenn du also eigentlich 5 eingeben wolltest und versehentlich 8 eingegeben hast, musst du hinterher noch mal -3 eingeben, um den Wert zu korrigieren.

Je nachdem, was du mit der Tabelle vorhast, könnte man ja vielleicht auch in Spalte A alle Werte untereinander eintragen und dann in Zelle B1 mit der Formel

=SUMME(A:A)

arbeiten. Dann kann man alle Werte auch im nachhinein jederzeit ändern und muss nicht mit Iteration arbeiten.


augsburgchris  10.08.2018, 13:41

Die Iteration bewirkt jedoch auch das mit jedem Durchrechnen der Tabelle der Wert erneut drauf gerechnet wird. Einmal F9 gedrückt oder woanders was eingegeben und schon hat man den Salat. Das lässt sich über ein Makro vermeiden.

1
AntonAntonsen  10.08.2018, 14:03
@augsburgchris

Das stimmt. Er müsste dann jedes mal nach Eingabe des Wertes die Zelle A1 gleich wieder löschen.

Ich halte das auch nicht für die optimale Lösung, aber es ging mir auch nur darum, eine Möglichkeit ohne VBA anzubieten.

1

Die Wege hast Du ja gekriegt, aber sowas ist sehr gefährlich:

Iteration à la Anton A: schaltest du sie aus, ist alles weg.

Makro: Du hast keine Kontrolle darüber, wie oft Du es schon betätigt hast. Fehler sind vorprogrammiert. Spätestens nach einem Urlaub denkst Du nicht mehr daran, dass da was war, wo man aufpassen muss...

Man kann zwar ein Makro schreiben, das eine Formel immer wieder erweitert, so dass dann in A2 steht:

=4+N("am 9.8.")+7+N("am 10.8.")+ usw,

aber das ist umständlich (wenn auch effektiv)

Es ist wirklich besser, in B2 zu schreiben =Summe(A1:A999) und Du kannst sogar per Makro veranlassen, dass die Eingabezelle immer die oberste bleibt (also nach jeder Eingabe oben eine Zelle einfügen, (Rest wird jeweils 1 nach unten geschoben).

Zeichne so eine Aktion im Makrorecorder auf und nimm als Auswerteformel dann =Summe(A;A) (das erfasst dann die ganze Spalte). Ist wesentlich besser, weil nachverfolgbar dokumentiert!!

Sub marine()
[A2] = [A2] + [A1]
End Sub

augsburgchris  10.08.2018, 13:14

Alternativ packst du in die Tabelle:

Private Sub Change(ByVal Target As Range)
If Target.Address = "$A$1" Then [A2] = [A2] + [A1]
End Sub

Rechnet dann bei jedem Eintrag in A1 den Wert drauf.

1
augsburgchris  10.08.2018, 13:17
@augsburgchris
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then [A2] = [A2] + [A1]
End Sub
1
fiedlerst534 
Beitragsersteller
 10.08.2018, 13:14

Super habe es eingegeben .

Aber warum muss ich jedes mal nach neu eingabe das Makro wieder ausführen ?

0
Suboptimierer  10.08.2018, 13:11

Die Syntax kenne ich noch nicht.
Könnte ich mich dran gewöhnen.

2
Iamiam  10.08.2018, 17:47
@Suboptimierer

Die ist uralt und sehr kurz, aber sie berechnet nichts. nur für direkte Adresseingaben. Fast verwunderlich, dass die noch unterstützt wird!

0
Suboptimierer  11.08.2018, 08:29
@Iamiam

Ja, [A1] scheint eine Alternative zu Range("A1") zu sein.

Das Makro von augsburgchris funktioniert. Es wird richtig gerechnet.

0

Ungetestet:

Private Sub Worksheet_Change(ByVal Target As Range) 
  If Target.Address = "$A$1" Then _
    Range("A2").Value = Range("A2").Value + Target.Value
End Sub

Oubyi, UserMod Light  10.08.2018, 13:26
DH!

Hab's getestet --> klappt!

Evtl. noch ein
Target.Select
anhängen, aber das ist Kosmetik.

0