Excel Zelle nach Eingabe leeren?
Hallo zusammen.
Ich möchte in Excel ein Budget erstellen. Ist es irgendwie möglich, dass wenn zum Beispiel in Zelle A7 der Wert 50 steht, ich danach 30 eingebe am Schluss 80 steht? oder der Wert der eingetragen wird automatisch einer anderen Zelle addiert wird.
3 Antworten
Du hast ja schon 2 VBA-Lösungen bekommen. Es gibt noch eine weitere Möglichkeit, wenn du Iteration auf 1 stellst und Neuberechnung auf Manuell, empfehle ich aber nicht und beschreibe das jetzt auch nicht näher. (empfehle ich deshalb nicht, weil man diesen Modus nicht dauerhaft durchhält, er gilt nämlich für Gesamt-xl. Hab das auch nicht mehr genau parat)
Wenn Du mit zwei Tastendrücken mehr pro Eingabe zufrieden bist, dann mach es so: Erste Eingabe ++Zahl (Zahl kann auch 0 sein. xl macht draus =+Zahl) oder =Zahl
weitere Eingaben: F2(schaltet in den Edit-Modus und setzt Cursor ans Ende aller bisherigen Zell-Einträge), also F2;+Zahl(oder -Zahl), Enter. Die Zahl wird mit + oder - angehängt.
Hat den Vorteil, dass du die Eingaben rekonstruieren kannst (man gibt ja so leicht was doppelt ein oder vergisst was!) In der Zelle steht dann zB:
=0+22+33+16-9-3,5+1/4-2^4+3*7-(55-40)-Cos(Pi()/4)
Du kannst also auch Summanden errechnen lassen (Cos(Pi()/4) als Summand macht natürlich selten Sinn, ist nur Beispiel dafür, wieviel da möglich ist). Nur: natürlich F2 nicht vergessen, sonst überschreibt die Neueingabe alles alte. (ggf Rückgängig machen
Ohne VBA ist das schwierig.
in VBA sähe es so in etwa aus:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$7" And IsNumeric(Target) Then _
Range("A1").Value = Range("A1").Value + Target.Value
End Sub
Damit wird der Wert in A1 erhöht, sobald du eine Zahl in A7 eingegeben hast.
Auf dieselbe Zelle wirkend sähe es so aus:
Public dMerk As Double
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$7" And IsNumeric(Target) Then
Application.EnableEvents = False
On Error Resume Next
Range("A7").Value = dMerk + Target.Value
dMerk = Range("A7").Value
Application.EnableEvents = True
On Error GoTo 0
End If
End Sub
mit vba ja mit excel selber kenn ich keine lösung vielleicht @suboptimierer
und auch dann musst du den zwischenstatus irgendwo speichern außer im laufbetrieb