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, 05:18 (Dieser Beitrag wurde zuletzt bearbeitet: 14.02.2020, 05: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