Datum festsetzen in Excel 2003

Hallo Helfende,

folgendes Problem möchte ich lösen, vieleicht habt ihr mir Tips wie
das ganze zu lösen wäre.
In einem Sheet soll in Zelle F8 Zahlen eingegeben werden dieses bewirkt, dass in Zelle W8, Y8, AA8 ein „N“ angezeigt wird, wenn in
diesen Zellen das „N“ steht soll in den Zellen AS8, AU8, AW8 das aktuelle Datum eingetragen werden. Wenn in Zelle X8, Y8 oder AB8 ein „X“ eingeben wird soll das Datum in AT8, AV8 AX8 eingetragen werden. Soweit funktioniert alles. Das Problem ist, dass wenn ich die Datei schließe und wieder öffne aktualisiert sich das Datum. Da ich die Tage zwischen dem Eintrag „N“ und „X“ berechnen muss ist dies nicht optimal.
Habe es schon versucht mit VBA Auto_Close und kopieren des Datum’s, aber das funktioniert auch nicht.

Danke für eure Hilfe
nukem21

Hallo,
soweit ich durch die ganzen Verwirrungen durchblicke hast du alles dynamisch über WENN-Abfragen in den Zellen gelöst. Natürlich aktualisiert sich das Datum ständig, schlißlich hast du ihm gesagt er soll „JETZT“ in die Zelle schreiben. Wenn du das nicht änderst steht auch immer das Datum von „JETZT“ in der Zelle.

Vermutlich versuchst du sowas wie eine Datenbank in Excel nachzubasteln. Da Excel eigentlich für andere Anwendungen gedacht ist wirst du um massive Workarounds nicht rum kommen. Weniger Arbeit ist Access.

Zu Excel:
Wenn sich die Daten (einmal eingetragen) nie mehr ändern sollen, dann musst du mit VBA arbeiten. Du könntest beim Schließen alle Zellen abfragen in denen ein Datum stehen könnte. Wenn dort ein Datum steht, dann Dauerhaft eintragen (Kopieren --> Werte einfügen). Allerdings ist dann die Formel die vorher drin stand hoffnungslos verloren. Natürlich kann man auch hier über Zwischenlösungen über Hilfsfelder nachdenken in die dann die Daten reingeschrieben werden. Für alle Lösungen gilt aber: Viel VBA!

Gruß,
Kevin

Hallo nukem21,

evtl. ist diese Seite auch für Dich interessant?

http://www.excelformeln.de/formeln.html?welcher=415

Gruß
Hubert

Hallo,
danke für die Infos und Anregungen.
Also mit den untenstehenden VBA-Zeilen komme ich nicht weiter. Es wird das Datum kopiert, sobald ich die Datei schließe und wieder öffne überschreibt sich das Datum.
-Sub Auto_Close()
-Range(„BK8“).Copy
-Range(„AS8“).PasteSpecial Paste:=xlPasteValuesAndNumberFormats, _
-Operation:=xlNone, SkipBlanks:=False, Transpose:=False
-’
-'Die Arbeitsmappe schließen und die Änderungen speichern

  • If ThisWorkbook.Saved = False Then
  • ThisWorkbook.Save
    -End If
    -End Sub

vieleicht kann mir noch jemand weiterhelfen…
Danke schon mal für Eure Mühe

Grüße
nukem21

Hi,
Den Trick kannte ich auch noch nicht.

Versteh ich das richtig, dass einfach Zirkelbezüge als Iteration gedeutet werden? Kann man das auch für einzelne Zellen aktivieren?

Die Fehlersuche bei versehentlichen Zirkelbezügen wird sonst schwierig und man kann sich Endlosschleifen basteln…

Gruß,
Kevin

wird, wenn in
diesen Zellen das „N“ steht soll in den Zellen AS8, AU8, AW8
das aktuelle Datum eingetragen werden. Wenn in Zelle X8, Y8
oder AB8 ein „X“ eingeben wird soll das Datum in AT8, AV8 AX8
eingetragen werden.

Hallo Nukem21,

in das Modul des Blattes:

Private Sub Worksheet\_Change(ByVal Target As Range)
Dim T As Range
Set Target = Intersect(Target, Range("F8, W8, Y8, AA8, X8, Z8, AB8"))
If Target Is Nothing Then Exit Sub
For Each T In Target
 Select Case T.Address(0, 0)
 Case "F8"
 If IsNumeric(T.Value) Then
 Range("W8, Y8, AA8").Value = "N"
 End If
 Case "W8", "Y8", "AA8"
 If T.Value = "N" Then
 If Range("AS8") = "" Then
 Range("AS8, AU8, AW8").Value = Date
 End If
 End If
 Case "X8", "Z8", "AB8"
 If T.Value = "X" Then
 If Range("AT8") = "" Then
 Range("AT8, AV8, AX8").Value = Date
 End If
 End If
 End Select
Next T
End Sub

Gruß
Reinhard

Hallo Reinhard,

danke für deine Antwort, das hilft mir schon weiter. Nur noch eine Frage wie kann ich den Befehl mit Format die Uhrzeit zum Datum hinzufügen. Den Befehl —Format = „m/d/yyyy h:mm“— ist mir bekannt nur wie ist dieser in deinem Code einzufügen.

Grüße
nukem21

danke für deine Antwort, das hilft mir schon weiter. Nur noch
eine Frage wie kann ich den Befehl mit Format die Uhrzeit zum
Datum hinzufügen. Den Befehl —Format = „m/d/yyyy h:mm“—
ist mir bekannt nur wie ist dieser in deinem Code einzufügen.

Hallo Nukem21,

muß es der Schrägstrich sein?

Range(„AS8, AU8, AW8“).Value = Format(Time, „m/d/yyyy h:mm“)

Gruß
Reinhard

Hallo Reinhard,

nein es müssen keine Schrägstriche sein, das war nur so eine Idee. Das Format wäre egal, es sollte nur Datum und Uhrzeit eingetragen werden um feststellen zu können wann die entsprechenden („N“ oder „X“) Einträge in den jeweiligen Zellen gemacht worden sind.

Gruß
nukem21

nein es müssen keine Schrägstriche sein, das war nur so eine
Idee. Das Format wäre egal, es sollte nur Datum und Uhrzeit
eingetragen werden um feststellen zu können wann die
entsprechenden („N“ oder „X“) Einträge in den jeweiligen
Zellen gemacht worden sind.

Hallo Nukem21,

um im deutschen Standard-Excel Schrägstriche zu erreichen müßte man anders vorghen, deshalb meine Frage.

Läuft denn der Code jetzt? Was genau nicht?

Gruß
Reinhard

Hallo Reinhard,

ich habe diesen Code etwas angepasst, aber leider funktioniert er nicht so wie ich es brauche. Da auch die differenz der Tage von Eingabe bei „N“ und „X“ berechnet werden soll.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim T As Range
Set Target = Intersect(Target, Range("F8, W8, Y8, AA8, X8, Z8,AB8 "))
If Target Is Nothing Then Exit Sub
For Each T In Target
Select Case T.Address(0, 0)
Case „F8“
If IsNumeric(T.Value) Then
Range(„W8, Y8, AA8“).Value = „N“
Else
Range(„F8“).Value = „“
Range(„W8, Y8, AA8“).Value = „“
Range(„AS8, AU8, AW8“).Value = „“
End If
Case „W8“, „Y8“, „AA8“
If T.Value = „N“ Then
If Range(„AS8“) = „“ Then
Range(„AS8, AU8, AW8“).Value = Date
End If
End If
Case „X8“, „Z8“, „AB8“
If T.Value = „X“ Then
If Range(„AT8“) = „“ Then
Range(„AT8, AV8, AX8“).Value = Date
End If
End If
End Select
Next T
End Sub

nun ist es so wenn in Zelle F8 eine Zahl eingetragen wird funktioniert es wie es soll, wenn kein Eitrag ist bzw. die Zelle leer ist sollte auch kein „N“ dadurch natürlich auch kein Datum in AS8, AU8 und AW8 angezeigt werden. Nun ist es so wenn ich den Eitrag lösche passiert nichts die Einträge bleiben, wenn ich aber ein „-“ Eingebe werden die Einträge aus den betroffenen Zellen gelöscht.
Nun sollte bei Eingabe von „X“ in Zelle X8 das Datum nur in Zelle AT8 angezeigt werden genau so sollten sich die Zellen Z8 zu AV8 und AB 8 zu AX8 verhalten bei Eingabe und wenn kein Eintrag dann auch kein Datum.

Grüße
nukem21