In Excel Zelle bearbeiten ohne Löschung der Funktion?

...komplette Frage anzeigen

4 Antworten

DAS lässt sich nicht über ein Formel bewerkstelligen, sondern nur über VBA.
Falls Du das willst, dann so:
Mach einen Rechtsklick auf den Tabellenreiter (unten, da wo z.B. Tabelle1 steht) und gehe dann auf "Code anzeigen...".
In das große Fenster des VBA-Editors, der sich dann öffnet kopierst Du folgenden Code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
If Target.Value = "" Then Target.FormulaLocal = "=HEUTE()"
End If
End Sub

Der Code funktonier für Die Zelle A1. Die kannst Du leicht anpassen.
Für mehrere Zellen einfach die inneren drei Zeilen wiederholen (geht auch eleganter, ist aber für Einsteiger so einfacher. Z.B.:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
If Target.Value = "" Then Target.FormulaLocal = "=HEUTE()"
End If
If Not Intersect(Target, Range("B1")) Is Nothing Then
If Target.Value = "" Then Target.FormulaLocal = "=HEUTE()"
End If
End Sub

Teste mal genau, ich habe das jetzt nur auf die Schnelle zusammengestrickt.Die

Datei musst Du danach aber als .xlsm speichern, und Makros zulassen.

Hilft Dir das?

Antwort bewerten Vielen Dank für Deine Bewertung
Whyrea 23.08.2016, 21:56

Danke der Code hat wunderbar funktioniert genau das habe ich gebraucht :) ich habe bevor ich tausend codes für jede Zelle mache einfach die Range in einem befehl gegeben mit 'Range ("A3:A30")'

0
Oubyi 24.08.2016, 01:16
@Whyrea

Das geht natürlich auch. Ich war von nicht zusammenhängenden Zellen ausgegangen.
Freut mich, dass ich helfen konnte.

0

einfacher wäre es, in eine andere Zelle das heutige Datum einzutragen mit dem Shortcut Strg+. (Punkt). geht ganz schnell, auch innerhalb eines Fließtextes, dann in die offene Zelle.

Probiers aus und gib diese Zelle für die Teilnehmer frei! (vielleicht brauchst Du auch dann das heute() gar nicht mehr?)

übrigens Zeit: Strg+: geht genausoschnell, und wenn Du Strg+.+Leer+Strg+: (Colon) einträgst, hast du das komplette Jetzt() im Format TT.MM;JJJJ hh:mm, aber sekundengenau und festgeschrieben 

Antwort bewerten Vielen Dank für Deine Bewertung

Baue eine Wenn Funktion ein. Wenn in B1 etwas manuell eingetragenes steht, dann nimm es, ansonsten nehme  eben die Formel. Also etwa in Zelle A1: "=Wenn(B1 <> "";B1;Heute())".

Dann könntest jedesmal wenn das sheet geöffnet wird ein Makro automatisch ausführen lassen, dass dafür sorgt, dass B1 leer ist. Das Makro muss "Private Sub Auto_Open()" benannt werden und dann wird es jedesmal ausgeführt, wenn du das Spreadsheet öffnest.

Hilft das?

abibabo.de

Antwort bewerten Vielen Dank für Deine Bewertung

Lass das "manuelle" in eine andere Zelle Eintragen (z.b A1):

In der Zelle, wo du jetzt deine HEUTE- Funktion hast, schreibst du (z.B in A2):

=WENN (A1<>0;A1;HEUTE())

Sprich: wenn A1 leer ist, steht in A2 das HEUTE-Datum, sonst steht dort der gleiche Wert wie in A1 (also das dort eingegebne Datum).


Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?