Datum Heute() einfrieren
#1
Hallo Zusammen,

ich möchte wenn Jemand in eine Zelle den Buchstaben "ü" reinschreibt, dass das heute Datum genommen wird und nebendran eingefügt wird. Es soll aber eingefroren werden, da sich ja das heute Datum immer wieder ändert.

Gibt es da eine pfiffige Lösung oder benötigt man da ein VBA-Code?

Danke euch
Top
#2
Hallo,

geht nur mit Makro.

Gruß Werner
Top
#3
... aber Makro kann auch pfiffig sein Wink
Herzliche Grüße aus dem Rheinland
Jörg

[Windows 10, Microsoft 365]
Top
#4
Moin,

lies mal hier: https://www.clever-excel-forum.de/Thread...e-stempeln oder hier: https://www.clever-excel-forum.de/Thread...eglichkeit
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#5
Hallo,

bevor man grosse Makros schreibt ... Was spricht dagegen mal kurz "Strg" & "." zu drücken? Das Datum ändert sich auch nicht.

Gruß
Marcus

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Top
#6
Hallöchen,

Zitat:geht nur mit Makro.

sehe ich nicht so:

Excel-Zeitstempel-Datumsstempel-per-Formel
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#7
Hallo, hier mal VBA Beispiele von meiner ehemaligen Excel Seite, damit ihr sht wie umständlich das mit Makros ist:

Sehr oft kommt die folgende Frage auf: Wie kann ich ein aktuelles Datum in eine Zelle setzen, welches sich nicht am nächsten Tag ändert?
Dieses Problem kann man mit einem Excel Makro angehen. Ich werde Euch hier 3 Beispiele darstellen:
Beispiel 1:
Wir bauen einen Schalter in unser Tabellenblatt ein. Bei Betätigung soll in die letzte Zeile, der Spalte H, dass aktuelle Datum eingefügt werden. Dafür legen wir das folgende Makro hinter das Tabellenblatt:

Option Explicit

Sub Datum()
Dim Loletzte As Long
    Loletzte = IIf(IsEmpty(Worksheets("Tabelle1").Range("H65536")), _
    Worksheets("Tabelle1").Range("H65536").End(xlUp).Row + 1, 65536)
    Worksheets("Tabelle1").Cells(Loletzte, 8) = Date
End Sub

 
Beispiel 2:
Immer wenn in Spalte A etwas eingetragen wird, dann soll in der zugehörigen Zelle, der Spalte B, ein Datum eingetragen werden. Auch der folgende Code gehört hinter das Tabellenblatt:

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim bereich As Range
    Dim zelle As Range
    'Bereich und Tabellenname anpassen
    Set bereich = Sheets("Tabelle1").Range("A1:A100")
    For Each zelle In bereich
        If Not IsEmpty(zelle) Then 
            zelle.Offset(0, 1).Value = Date
        End If
    Next
End Sub
 
Beispiel 3:
Wir wollen dass ein Datum immer mit einem Klick, mit der rechten Maustaste, in eine Zelle der Spalte D eingetragen wird. Hierzu müssen wir als Erstes einmal die normale Funktion der rechten Maustaste deaktivieren. Dazu fügen wir den folgenden Code im VBA Teil hinter Diese Arbeitsmappe ein:

Option Explicit

Private Sub Workbook_Open()
    Application.CommandBars("Cell").Enabled = False
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.CommandBars("Cell").Enabled = True
End Sub

Nun wechseln wir in den Makrobereich unseres Tabellenblatts, wo der Code laufen soll, und fügen dort dieses Makro ein:

Option Explicit

Private Sub Worksheet_BeforerightClick(ByVal Target As Range, Cancel As Boolean)
    Dim Frage As Integer
    If Not Intersect(Target, Range("D:D")) Is Nothing Then
    'Range("D:D") muss auf die Spalte angepasst werden
        If Target.Value = "" Then
            Target.Value = Date
        Else
            If IsDate(Target) Then
                Frage = MsgBox("soll das Datum aktualisiert werden?", vbYesNo)
                If Frage = vbYes Then Target.Value = Date
                If Frage = vbNo Then Exit Sub
                Exit Sub
            End If
            Frage = MsgBox("Es steht kein Datum in der Zelle!" & _
            "Soll dennoch ein Datum eingetragen werden?", vbYesNo)
            If Frage = vbYes Then Target.Value = Date
            If Frage = vbNo Then Exit Sub
        End If
    End If
End Sub
Jetzt müssen wir unsere Tabelle noch einmal abspeichern, schliessen und wieder öffnen. Wenn wir gefragt werden, ob die Makros aktiviert werden sollen, dann stimmen wir natürlich zu. Wenn Ihr jetzt in Tabelle1 mit der rechten Maustaste in eine Zelle der Spalte D klickt, dann wird dort ein Datum eingefügt.

LG
Marcus

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Top
#8
Hallo

bei soviel kompliziertem Makro Code wird mir sogar schwindelig.  snb macht das mit seinen berühmten zwei Zeilern
Ich gehe davon aus das die Zelle rechts als Datumzelle daneben gemeint ist, sonst muss man Offset umschreiben.

mfg  Gast 123

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If LCase(Target) = "ü" Then
  Target.Offset(0, 1) = CDate(Left(Now, 10))
End If
End Sub

Nachtrag:   Code in das Tabellen Blatt einfügen wo er laufen soll.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste