Excel: B Zahleneingabe, A automatisch aktuelles Datum einfügen, geht das?

... komplette Frage anzeigen

5 Antworten

Du musst Dir immer vor Augen halten, dass Formeln in Abhängigkeit von den sie beliefernden Zellen etwas berechnen. Bei heute()/jetzt() kommt aber die Systemzeit dazu, die Du nicht einfach beeinflussen kannst/willst. So würde Dir bei einer Formel morgen ein anderer Wert links daneben stehen als heute, schlimmer noch: der heutige Wert ist dann verschwunden!
Wenn Du nicht nachher über kopieren+inhalte einfügen-WERTE die Formel als Wert fixieren willst (was genauso aufwändig wäre wie das Eintippen des Datums), musst Du über ein Makro das Datum als festen Wert setzen.
Klicke auf das Kontext-Menü(rechte Maustaste) der Blattnamensfahne ("Reiter", aber unten), wähle Code anzeigen und füge in das sich öffnende Modul-Blatt folgendes Makro ein:

Private Sub Worksheet_Change(ByVal Target As Range) 'Trägt akt. Datum in A:A ein, wenn in B:B Zahl eingetragen wird
If Not Intersect(Target.Cells(1), ActiveSheet.Columns(2).Cells) Is Nothing Then
If IsNumeric(Target.Value) Then Target.Cells(1).Offset(0, -1) = Date 'kann auch Today(), Now() oder Time sein End If
End Sub

Das Makro wird nur aktiv, wenn in eine Zelle der Spalte B (=Columns(2) was eingetragen wird, und es ist spezifisch für links daneben (=.offset(0, -1) Andere Änderungen oder Änderungen woanders müssen separat programmiert werden, evtl in zusätzlichen Zeilen desselben Makros.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Oubyi
02.11.2012, 10:47

DH!

Kleine Korrektur:
Das "End if" rutsch beim reinen kopieren des Codes in den Kommentar. SO sollte es besser klappen:

Private Sub Worksheet_Change(ByVal Target As Range) 'Trägt akt. Datum in A:A ein, wenn in B:B Zahl eingetragen wird
If Not Intersect(Target.Cells(1), ActiveSheet.Columns(2).Cells) Is Nothing Then
If IsNumeric(Target.Value) Then Target.Cells(1).Offset(0, -1) = Date 'kann auch Today(), Now() oder Time sein
End If
End Sub

0
Kommentar von Iamiam
02.11.2012, 11:06

Da ist ein Zeilenumbruch verschluckt worden, ausserdem gehen Today(), Now() in dieser Form nicht und Time liefert nur die Tageszeit (ohne Datum): zusammen hieße das Date + Time
i.F. hab ich noch einen Überschreibschutz eingebaut, (kann sinnvoll sein oder nicht*) hier nochmal das Makro:

Private Sub Worksheet_Change(ByVal Target As Range)
'Trägt akt. Datum in A:A ein, wenn in B:B Zahl eingetragen wird
If Not Intersect(Target.Cells(1), ActiveSheet.Columns(2).Cells) Is Nothing Then
If IsNumeric(Target.Value) Then if isempty(Target.Cells(1).Offset(0, -1)) then Target.Cells(1).Offset(0, -1) = Date
'kann auch Date + Time (Datum+Uhrzeit) sein
End If
End Sub

*) Der Überschreibschutz erlaubt spätere Korrekturen des Zahleneintrags, andererseits wird dieser Eintrag dadurch manipulierbar. Da xl aber sowieso in der einfachen Form nicht Dokumenten-fest ist, kann man eines von beiden wahlweise programmieren.
Zwischen Nothing und Then ist kein Zeilenumbruch, ebenso nicht zwischen dem übernächsten then und target.Cells(1) die werden nur durch die Zeilenlänge hier so dargestellt (zumindest bei mir in der Vorschau)

0

Ich denke:
=WENN(B1<>"";HEUTE();"")
ist nicht wirklich das, was Du willst.
Denn dann steht dort IMMER das aktuelle Datum.
Wenn Du also heute etwas in B1 schreibst, steht da zwar heute der 02.11, aber morgen steht dann dort der 03.11.
Ich denke aber, Du möchtest dort das Datum stehen haben, an dem der Eintrag in B1 gemacht wurde!?
DAS lässt sich nur über ein Ereignis-Makro, also einen VBA-Code erreichen.
Wenn ich Recht habe und bei Dir Makros zugelassen sind, dann sag hier kurz Bescheid, dann erkläre ich Dir, was Du machen musst.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von philosophus
02.11.2012, 09:35

Gut, dass du das erwähnst.

0

Guten Morgen philosophus,

das geht so:

In die Spalte B gibt man ein: =wenn(A?<>0;heute();"")

Du darfst aber nicht vergessen, die Spalte B als Datum zu formatieren. :-)

Gruß pickpocket ^^

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von philosophus
02.11.2012, 08:29

Guten Morgen und gratias ago.

0

Bei Google Drive ist diese Formel in Zelle A2 einzusetzen: =if(B2="";"";today()) bei Excel funktioniert diese Formel: =WENN(B2="";"";HEUTE())

Die Formel kannst Du dann runterkopieren.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von philosophus
02.11.2012, 08:16

Danke, die Formel von MisterMusic86 funktioniert auch. Aber eine Verständnisfrage:

=IF(B4:B99<>0;today();"")

Das heißt also, wenn (IF) B4 bis B99 (B4:B99) leer (<>0) sind, dann füge das heutige Datum (today) ein, sonst füge nichts ein (;""), oder?

Was könnte man in today() noch in die Klammer setzen?

0
Kommentar von philosophus
02.11.2012, 08:31

Vielleicht weißt du ja auch einen Weg, wie das immer so sein soll. So muss ich das ja in jede Zeile einzeln eintragen.

0

=WENN(A1<>0;heute();"")

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von philosophus
02.11.2012, 08:11

=IF(B4:B99<>0;today();""

Danke :)

0

Was möchtest Du wissen?