Herbers Excel-Forum - das Archiv
Datum automatisch eintragen

|
Betrifft: Datum automatisch eintragen
von: Joerg
Geschrieben am: 21.09.2003 12:33:55
Hallo,
erneut ein Problem, für das ich leider trotzdem es schon mal im Forum war noch keine Lösung habe.
Wird ein Tabellenblatt aufgerufen, soll in Spalte A das Tagesdatum eingetragen werden, wenn die danebenstehenden Zelle der Spalte B leer ist.
Rufe ich das Blatt am nächsten Tag wieder auf, soll erneut in der nächsten freien Zelle in Spalte A das Tagesdatum eingetragen werden, wenn die danebenliegende Zelle in Spalte B leer ist.
Pro Tag soll das Datum aber nur einmal eingetragen werden.
Danke Joerg
Betrifft: AW: Datum automatisch eintragen
von: Ramses
Geschrieben am: 21.09.2003 12:39:38
Hallo
Option Explicit
Private Sub Worksheet_Activate()
Dim Cr As Integer
Cr = Range("A65536").End(xlUp).Row
If Format(Cells(Cr, 1).Value, "dd.mm.yyyy") <> Format(Now, "dd.mm.yyyy") And Cells(Cr, 2) = "" Then
Cells(Cr, 1) = Format(Now, "dd.mm.yyyy")
End If
End Sub
Code eingefügt mit Syntaxhighlighter 1.16
Gruss Rainer
Betrifft: AW: Datum automatisch eintragen
von: Joerg
Geschrieben am: 21.09.2003 13:07:04
Hi,
funktioniert leider nur bei ersten Aufruf,
Datum steht dann in Zeile A1, jetzt trage ich einen Text in B1 ein.
Rufe ich das Programm jetzt am nächsten Tag wieder auf, soll in der nächsten freien Zelle ( wäre dann A2 ) in Spalte A wieder das Datum eingetragen werden, wenn die nebenstehende Zelle in Spalte B (also B2) leer ist. Sonst soll das Programm die nächste freie Zelle in Spalte A suchen, die neben einer freien Zelle in Spalte B liegt.
usw.
Gruss Joerg
Betrifft: Probiers morgen noch mal....
von: Ramses
Geschrieben am: 21.09.2003 13:14:38
Hallo,
... oder hast du zum testen dein Systemdatum verändert :-)
Muss allerdings gestehen, dass ein kleiner Lapsus drin ist :-)
Ändere
Cells(Cr, 1) = Format(Now, "dd.mm.yyyy")
in
Cells(Cr+1, 1) = Format(Now, "dd.mm.yyyy")
sonst wird immer der Wert in A1 überschrieben
Gruss Rainer
Betrifft: AW: Probiers morgen noch mal....
von: Joerg
Geschrieben am: 21.09.2003 13:28:46
Hallo Rainer,
funktioniert gut, solange in Spalte B kein Text steht. Manchmal (nicht immer) möchte ich neben das Datum in Spalte B ein Text eintragen. Dann trägt er mir am nächsten Tag ( Systemdatum geändert !! :-)) kein Datum mehr ein.
Gruss Joerg
Betrifft: ???
von: Ramses
Geschrieben am: 21.09.2003 15:16:12
Hallo
Dann kannst du ja die Prüfung auf "Bx" wegfallen lassen
Option Explicit
Private Sub Worksheet_Activate()
Dim Cr As Integer
Cr = Range("A65536").End(xlUp).Row
Debug.Print Cr
If Format(Cells(Cr, 1).Value, "dd.mm.yyyy") <> Format(Now, "dd.mm.yyyy") Then
Cells(Cr + 1, 1) = Format(Now, "dd.mm.yyyy")
End If
End Sub
Gruss Rainer
Betrifft: AW: unglücklich ausgedrückt
von: Joerg
Geschrieben am: 21.09.2003 15:52:29
Hallo,
ich glaube ich habe mich unglücklich ausgedrückt.
Die Prüfung ob Spalte B <>"" ist insofern wichtig, da z.B. :
Aktuelles Datum steht in A2, Text in B2, B3, B4
dann soll am nächsten Tag in A5 das aktuelle Datum eingetragen werden, so das ich bei Bedarf in B5 wieder etwas eintragen kann.
Wichtig ist also, das jedesmal wenn ein Datum in der Spalte A eingetragen wird, die danebenliegende Zelle in B leer ist.
Ich weiss in Voraus nicht wieviele Einträge ich für den aktuellen Tag in B machen muß, daher die Prüfung ob die Zelle in Spalte B leer ist.
Betrifft: Dann muss man das Pferd anders aufzäumen....
von: Ramses
Geschrieben am: 21.09.2003 17:57:09
Hallo
... solche Sachen gehören einfach in die Fragestellung:
"...Ich weiss in Voraus nicht wieviele Einträge ich für den aktuellen Tag in B machen muß, ..."
Woher soll man das denn wissen.
Option Explicit
Private Sub Worksheet_Activate()
Dim Cr As Integer
Cr = Range("A65536").End(xlUp).Row
Debug.Print Cr
If Format(Cells(Cr, 1).Value, "dd.mm.yyyy") = Format(Now, "dd.mm.yyyy") Then
Exit Sub
Else
Cells(Range("B65536").End(xlUp).Row + 1, 1) = Format(Now, "dd.mm.yyyy")
End If
End Sub
Gruss Rainer
Betrifft: AW: Perfekt
von: Joerg
Geschrieben am: 21.09.2003 18:09:39
Hallo,
klappt jetzt wie gewünscht,
besten Dank
Joerg