EXCEL VBA / MAKRO - Wert nach Neu-Berechnung aufaddieren?

... komplette Frage anzeigen

2 Antworten

Damit Du wenigstens nachvollziehen kannst, welche Zahlen addiert wurden, kannst du Folgendes machen

...
Worksheets("Tabelle1").Range("E4").formula =Worksheets("Tabelle1").Range("E4").formula &"+"&Worksheets("Tabelle1").Range("B8").value
...

Das sonst notwendige formulalocal kannst Du hier weglassen, da + im dt und im am. gleich ist.
Wird also 2x die gleiche Zahl addiert, siehst du das. xl verkraftet sehr lange Formeln, allerdings musst du mit =0 als "Initialzündung" starten.

Theoretisch könnte man mit

...&"+N(Text(Jetzt();""""T.M. h:mm:ss"""")"

auch noch den Aktionszeitpunkt festhalten, kommt auf Deine Arbeitsweise und den Datenanfall an (bei vielen gleichen Beträgen vllt sogar sinnvoll), da braucht man aber dann Formulalocal, musst Du wg der genauen Syntax ein bisschen rumprobieren bzw in der Hilfe nachlesen. Ich krieg das heute nacht jedenfalls nicht mehr hin, vermutlich wg der Gänsefüßchen, mit denen ich immer wieder auf Kriegsfuß stehe...

Als Krücke hab ich das vorläufig mal ganz anders, nämlich so- geschrieben: ActiveCell.FormulaLocal = ActiveCell.FormulaLocal & "+" & Now() * 10 ^ -10

Das liefert ein leicht verfälschendes Inkrement in der Größenordnung von 10^-6, das sich aber im Kopf nicht zu Datum/Uhrzeit umsetzen lässt, allenfalls vergleichen. Mal sehen, ob mir noch was gescheites dazu einfällt!

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Iamiam
19.08.2016, 10:32

Nach vielem Rumprobieren hab ich jetzt diese Methode gefunden:

An die Zellformel der markierten Zelle (kannst auch Range("E4") festlegen*) wird der Wert in B8 als Summand dazuaddiert, zusätzlich der String für die Zeitkontrolle (+N("Text") ergibt +0)

  • Sub AdditionsFormelAnhängenMitKontrollZeit()
  • ActiveCell.FormulaLocal = ActiveCell.FormulaLocal & "+" & Range("B8").Value & "+N(" & """" & Format(Now(), "ddd, h:mm:ss") & """" & ")"
  • End Sub

das kann beliebig oft wiederholt werden, bei gleichen Werten und verdächtig kleinen Zeitabständen hast du ein Indiz für doppelte Betätigung des Knopfs (aber natürlich kein Beweis, nur eine Nach- Denk-Marke)

*) In der Zelle sollte vorher schon eine Formel stehen, eine Leere Zelle wird als Text gefüllt und angezeigt, kann aber durch Entfernen des führenden Hochkommas jederzeit richtig aktiviert werden.

Probiers aus!

0
Range("E4").Value = Range("E4").Value + Range("B8").Value
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Iamiam
19.08.2016, 00:52

Pass aber auf, dass Du nicht zweimal oder öfter klickst! Solche Makros bergen die (riesige!) Gefahr, dass man hinterher nicht mehr nachvollziehen kann, was passiert ist!

0

Was möchtest Du wissen?