![]() |
Exel VBA Statisches Datum/Uhrzeit
Hallo Gemeinde,
Ich habe folgendes vorhaben. Ich möchte in Exel in eine Zelle Haben (A1) in welche automatisch das Aktuelle Datum eingetragen wird, sobald in Zelle (A2) ein Wert steht. Das gleiche auch noch mit der Uhrzeit. Sobald in Zelle A4 ein Wert Steht, wird in Zelle A3 Die Aktuelle Zeit Eingetragen. Diese Zeiten sollen dann Statisch sein und nur verändert werden wenn in den jeweiligen Überprüfungsfelder wieder etwas verändert wird. Habe schon gegoogelt, aber nix passtendes gefunden. Muss wohl mit VBA gelöst werden, und das kann ich leider nicht. Danke für eure Mühe |
Hi...
erstmal an alle VBA-Profis... ich habe mir das alles selbst beigebracht und ich weiß, dass das progammiertechnisch nicht ganz das Wahre ist, aber es funktioniert....:D Menü Entwicklertools---Code anzeigen--- dort folgenden Code hineinkopieren... Datums- und Zeitformat kannst du dir dann selbst aussuchen... Immer wenn du nun in Zelle A2 oder A4 etwas änderst, wird entsprechend in A1 bzw. A3 das aktuelle System-Datum bzw. die aktuelle System-Zeit eingetragen |
@eitch100
Ich hätte das zunächst ohne VBA gelöst. Ins Feld A1 =wenn(A2="";"";heute()) A1 muss als Datum formatiert sein. Ins Feld A3 =wenn(A4="";"";jetzt()) A3 muss als Uhrzeit formatiert sein. Sobald nun in A2 oder A4 Änderungen vorgenommen werden, aktualisiert sich automatisch das Feld A1 oder A3 und zwar unabhängig voneinander. Anmerkung: Das Datum und auch die Zeit ändern sich bei dieser Version leider immer beim Neuöffnen der Datei- daher wahrscheinlich unbrauchbar für dich! LG VideoLord |
Zitat:
In deiner Anmerkung hast du ja schon das richtige Fazit gezogen... Mit meinem Code muss man allerdings die Änderung mit Enter abschließen... |
Da bin ich ja recht froh, dass du noch vor Ende deines Zitats meinen Post zu Ende gelesen hast und Ihn entsprechend bewertet und kommentiert hast.
Schein bei einigen hier im Board ein regelrechter Sport zu sein, sei es wie es ist. Spam bleibt Spam- mein Motto. Zitat:
|
Mein Motto: konstruktive Kritik und auch mal ein gutes Späßle muss drin sein... :T Helfen, wenn man kann oder es versucht, darf ja auch ruhig ein bisschen Spaß machen...
|
@eitch100: Hab deine Formel angewendet, leider Funktioniert es aber nicht. Vielleicht bin ich auch einfach zu blöde um es anzupassen. Mein Datumsfeld soll A3 sein mein Uhrzeitfeld B3. Eingabefeld ist D3.
Hab deine Formel so Angepasst. Falsch ? Code:
Private Sub Worksheet_Change(ByVal Target As Range) |
ActiveCell.Row = 3 / bedeutet die dritte Spalte also C
ActiveCell.Column = 1 / bedeutet die erste Zeile also 1 zusammen = C1 Somit kannst du dir einfach den korrekten Eingabeplatz selber zuordnen, für beide deiner Anweisungen, also Zeit und Datum. |
Also ich hab das jetzt lange ausprobiert aber irgendwie funzt das nicht. Da kommt Laufzeitfehler und Exel Absturz.
|
Na so ein Mist aber auch. Das Change-Ereignis wird natürlich auch dann ausgelöst, wenn Datum oder Zeit in eine Zelle geschrieben werden. So entsteht hier eine endlose Ereignisauslösung.
|
Probier mal das hier, ansonsten läuft der eingestellte Code immer in einer Schleife, die Excel zum Absturz bringen.
Code:
Private Sub Worksheet_Change(ByVal Target As Range) A3 = Datum B3 = Uhrzeit Eingabefeld: D3 = Eingabe |
Zitat:
row=ZEILE=3 column=SPALTE=1 zusammen=A3 Zitat:
Zitat:
Man könnte sich höchstens eine If-Bedingung schenken... und die Fehlerroutine sollte man in die If-Anweisung integrieren, sonst führt er diese bei jedem Change-Ereignis aus... Edit: Hier noch eine andere Möglichkeit... einfach über Doppelklick auf D3... (natürlich alten Code vorher löschen...) |
Danke euch ! Es Funktioniert. Jetzt habe ich nur das Problem, dass ich die Funktion gerne nach unten Kopiert hätte, da das Dokument nachher 500 Zeilen mit der Jeweiligen Funktion hat. Row ist die Gleiche aber Cell immer 1 höher. Möglich ?
|
dieser Code gilt für alle in Spalte D ab Zeile 3...
Code:
Private Sub Worksheet_Change(ByVal Target As Range) Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) |
Wie cool, das Funktioniert !!! Danke vielmals
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:13 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.