ich habe eine einfache tägliche Tagestabelle. Da werden die täglichen Vorgänge eingetragen. Zum Beispiel steht in der Endsumme, am Tagesende in einer Zelle 60 €.
Nun kam mir die idee diese Tägliche Endsumme von 60 € auf einem Zweiten Tabellenblatt mtl. zu addieren.
Z.B. Heute nach Feierabend ist die Tageskasse mit 60€ abgeschlossen. In dem Zweiten Tabellenblatt sollen dann die 60€ stehen. Das Klappt! Doch das tägliche Kassenblatt wird ja jeden morgen wieder auf 0 € gesetzt, daher wird natürlich in dem zweiten Tabellenblatt, auch der Wert 60 € wieder auf 0 € gesetzt!
Doch der wert soll da erhalten bleiben..
Gibt es da eine Formel für, Makro wäre auch ok?
Ich hoffe ich habe es einfach erklärt, sonst einfach nachfragen!
14.02.2020, 06:18 (Dieser Beitrag wurde zuletzt bearbeitet: 14.02.2020, 06:18 von schauan.)
Hallöchen,
im Prinzip so: Private Sub Worksheet_Change(ByVal Target As Range) 'Bei Eingabe in A1 Wert in Spalte B hinzufuegen If Target.Address = "$A$1" Then Sheets("Tabelle1").Cells(Rows.Count, 2).End(xlUp)(2) = Cells(1, 1).Value End Sub
Der Code kommt ins Codemodul vom Tabellenblatt, wo die Eingaben erfolgen. $A$1 und Tabelle1 passt Du entsprechend Deinen Anforderungen an. Die 2 bei Cells(Tows.Count, 2) bedeutet Spalte B im Zielbereich
Wenn Du eine falsche Eingabe machst und den Wert korrigierst, müsstest Du auf dem anderen Blatt den falschen wert löschen, sonst hast Du 2 Werte für den Tag ...
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
a) Links im Navigationsfenster Rechtsklick, "Neues Modul einfügen" In dieses Modul kommt: Code: Option Explicit Public Temp Public z Public s Sub addition() On Error GoTo Ende If IsNumeric(Temp) And Temp <> 0 And z <> 0 And s <> 0 Then Cells(z, s) = Cells(z, s) + Temp Else End If Application.EnableEvents = True Temp = Selection Ende: Application.EnableEvents = True End Sub b) Doppelklick auf Tabelle1 (oder wie das Sheet auch immer heissen mag), dort diesen Code einfügen: Code: Private Sub Worksheet_Change(ByVal Target As Range) z = Target.Row s = Target.Column Application.EnableEvents = False Call addition End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Cells(2, 256) = Temp Call addition End Sub Hier merke man sich die "2, 256": 2 steht für die Zeile, 256 für die Spalte - dort lege ich einen "Zwischenspeicher" an. Falls diese Zelle bereits verwendet sein sollte, bitte in einen unbenutzten Bereich ausweichen.
Funktioniert eigendlich sehr gut für meine Zwecke. Nur: Wenn ich die Zellen formatiere, z.B. mit € Zeichen, geht der Code nicht mehr. Was musst da geändert werden? Auch eine Bereichsangabe wäre Top. Z.B von A2:B20, C2:D20