Wie kann man in Excel Zeilen so formatieren, das wenn man eine Zahl in die Zeile eingibt, es automatisch berechnet wird?
Also um es in ein Beispiel zu setzen, ich möchte das jede einzelne Zeile so formatiert ist, das sie zwar leer steht, aber wenn ich eine Zahl dort rein schreibe, sie automatisch mit einer Formel berechnet wird.
Das soll den Sinn haben, das ich jede einzelne Zeile eine Gewichtung gebe z.B. 5. Wenn ich dann in die Zeile z.B. 10 eintrage, dann diese Summe automatisch mit 5, der Gewichtung, multipliziert wird und dort 50 steht.
Funktioniert diese Methode über Excel? Ich kenne das in Excel nur so, das ich zwei Zeilen miteinander addieren kann. Die stehen dann aber jeweils in zwei unterschiedlichen Zeilen (Tabellen) und in der dritten steht dann eben das was ich möchte. Aber ich möchte eben das alles in einer Zeile passiert und nicht über mehrere Tabellen.
4 Antworten
Also um es in ein Beispiel zu setzen, ich möchte das jede einzelne Zeile so formatiert ist, das sie zwar leer steht, aber wenn ich eine Zahl dort rein schreibe, sie automatisch mit einer Formel berechnet wird.
So etwas geht prinzipiell nicht. Entweder da ist eine Formel drin und wenn Du was reinschreibst ist die Formel überschrieben und weg - oder da ist nichts drin und wenn Du was anderes als eine Formel rein schreibts (Text oder Zahlen), dann wird daraus nie eine Formel. Und auch eine Formel kann keine Inhalte von Zellen ändern, weder den der eigenen Zelle noch den anderer Zellen (Ich empfehle sich den Unterschied von Inhalt einer Zelle und Präsentation desselben klar zu machen)
Daher: Wer Inhalte von Zellen automatisch ändern will, muss Makros programmieren.
Jetzt zu Deinem Problem: Schreib die Berechnungsfomel in ein separate Spalte neben die Spalte mit den Eingaben und alles ist gut.
Das lässt sich nur über ein VBA-Ereignismakro lösen. In etwa so:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
On Error GoTo ErrorHandler
Application.EnableEvents = False
Target.Value = Target.Value * 10
ErrorHandler: Application.EnableEvents = True
End If
End Sub
Wenn Du Dich damit aber nicht auskennst, würde ich Dir das nicht empfehlen.
Nein, das geht nicht ohne VBA. Es läuft auch der Idee von Spreadsheets zuwider.
Du könntest beispielsweise hingehen, ein verstecktes Sheet nehmen, dort den originalwert speichern und den Anzeigewert dann live aus dem versteckten Sheet heraus berechnen. Das wäre einigermaßen stabil. Du müsstest nur bei Eingabe den Wert abfangen (onBlur, z.B.) und dann in das versteckte Sheet schreiben, sowie die Formel für die jeweilige Zelle neu setzen.
Natürlich kann eine Zelle nicht Eingabe und Ausgabe gleichzeitig sein.
Wäre ja auch sinnlos da ja dann die Zelle immer wieder mit 5 multipliziert würde (wie in deinem Beispiel) und endlos berechnen würde
Du könntest beispielsweise hingehen, ein verstecktes Sheet nehmen, dort den originalwert speichern und den Anzeigewert dann live aus dem versteckten Sheet heraus berechnen. Das wäre einigermaßen stabil.