Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zeitstempel in Excel 2016
#1
Hallo Experten,
habe folgendes Makro im Internet gefunden.

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C1")) Is Nothing Then
    If IsEmpty(Target) = False Then _
        Target.Offset(0, 1).Value = Format(Now, "dd.mm.yyyy")
       
End If
End Sub

In C1 steht die Formel = A1
Wenn ich jetzt in A1 einen anderen Wert eingebe müsste sich doch D1 ein Datum eintragen......oder
Wenn ich C1 per Hand ändere wird in D1 das heutige Datum eingetragen.
Ich brauche das um später das Datum mit einer anderen Zelle(Dateiname) zu verbinden und als neue Datei zu speichern.
Wo ist da mein Denkfehlerß
Gruß Monkee
Antworten Top
#2
Hallo

das Change-Ereignis reagiert in dem Code NUR auf manuelle Änderung in Zelle C1
entweder du nimmst in dem Fall das Calculate-Ereignis oder fragst Zelle A1 ab
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1")) Is Nothing Then
   If IsEmpty(Target) = False Then _
       Target.Offset(0, 3).Value = Format(Now, "dd.mm.yyyy")
     
End If
End Sub
MfG Tom
[-] Folgende(r) 1 Nutzer sagt Danke an Crazy Tom für diesen Beitrag:
  • Monkee
Antworten Top
#3
(23.01.2016, 08:55)Crazy Tom schrieb: das Change-Ereignis reagiert in dem Code NUR auf manuelle Änderung in Zelle C1
entweder du nimmst in dem Fall das Calculate-Ereignis oder fragst Zelle A1 ab

Und wie sieht das dann aus, auf A1 kann ich nicht gehen da das eine Rechnungsnummer wird, die beim drucken erhöht wird
Gruß Monkee
Antworten Top
#4
Hi,

wie wär's, wenn du mal genaue Angaben machen würdest, wo was eingetragen und wo was berechnet werden soll. Und zwar so, wie es dann in deiner Originaltabelle tatsächlich aussehen soll. Alles andere ist doch sonst ein heiteres Rätselraten.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
[-] Folgende(r) 1 Nutzer sagt Danke an WillWissen für diesen Beitrag:
  • Monkee
Antworten Top
#5
(23.01.2016, 09:51)WillWissen schrieb: Alles andere ist doch sonst ein heiteres Rätselraten.

Melde mich später wieder, bin im Krankenhaus
Gruß Monkee
Antworten Top
#6
Hallo Monkee,

klar kannst Du auf A1 reagieren. Du hast ja am Anfang geschrieben, dass Du in A1 Deine Eingabe machst.
Eingetragen wird dann im letzten codebeispiel 3 Spalten weiter rechts, also in D1. Das ist die Stelle mit dem Target(0, 3)

Wenn beim Drucken in der Zelle was verändert wird, dann geschieht das wohl mit einem Makro. In dem Makro kannst Du mit
Application.EnableEvents = False (oder True)
steuern, ob Excel noch Ereignismakros wie das Change ausführen soll oder nicht.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#7
Hier eine Variante ohne intersect:

Private sub worksheet_change(byval target)
Application.enableevents = false
Target.offset(0,1).value = date
Application.enableevents = true
End sub
Antworten Top
#8
Hi Fennek

wollte mal dein Makro ausprobieren - hier mein Ergebnis:

[
Bild bitte so als Datei hochladen: Klick mich!
]
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#9
Hallo Willwissen,

Der Code muss im Bereich der Worksheet-events eingegeben werden, der Name der sub wird automatisch erstellt. Deshalb ist im Bespiel das "Target as range" in der ersten Zeile verkürzt.

Wenn die Zeilen "sub" und "end sub" automatisch generiert werden, sollte es klappen.
Antworten Top
#10
Hi Günter,

(26.01.2016, 11:55)WillWissen schrieb: wollte mal dein Makro ausprobieren - hier mein Ergebnis:

Da fehlt die Variablendeklaration von target:
Option Explicit

Private Sub worksheet_change(ByVal target As Range)
  Application.EnableEvents = False
  target.Offset(0, 1).Value = Date
  Application.EnableEvents = True
 
End Sub
Antworten Top


Gehe zu:


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