Excel. Datum aktualisieren per Button

4 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Ich würde ich dies auch so machen wie st0neface.
Der andere Vorschlag mit dem Datum in eine Zelle einfügen, dann unsichtbar machen, und dann doch noch extra ein Makro mit Kopierfunktion zu erstellen macht keinen Sinn und ist unnötig.
.
Einfach dieses Makro hier datum genannt, oder den Code von stOneface :
Sub datum()
Range("A1").Select
ActiveCell = Date
End Sub

das Makro dem gewünschten Button zuweisen und fertig, ist die Zelle des Datums nicht A1, einach im Code die richtige Zelle eintragen wo das Datum steht.


Leon97531  16.03.2010, 23:12

Wow, danke für das Sternchen, aber dies hätte eigentlich stOnface verdient, der war mit der Antwort ein paar Stunden früher als ich.
.
Aber will ja nicht undankbar sein, von daher Danke :-)

0
arminho1  17.03.2010, 13:19
@st0neface

Die Vorschläge funktionieren alle. So, jetzt hat auch jeder einen Daumen...

0

Anderer Vorschlag:

  1. Klicke im Visual-Basic-Editor im Projektexplorer doppelt auf das betreffende Tabellenblatt
  2. Wähle rechts oben über der weißen Fläche aus der Auswahlliste "Worksheet" aus.
  3. Wähle rechts daneben aus der Auswahlliste "Change" aus.
  4. Unten steht jetzt folgender Code:

    Private Sub Worksheet_Change(ByVal Target As Range)
    
    
    End Sub
    

Zwischen Private... und ...End Sub gibst du ein: Range("A1").value=Now oder Range("A1").Value = Format(Now, "dd.mm.yyyy"). Letzteres, wenn du nur das Datum willst.

Das sieht dann insgesamt so aus:

Private Sub Worksheet_Change(ByVal Target As Range)
    Range("A1").Value = Format(Now, "dd.mm.yyyy")
End Sub

Nun müssen die Benutzer nicht mehr einen Button klicken, sondern sobald etwas geändert wird, wird automatisch das Tagesdatum in die Zelle A1 geschrieben.


Leon97531  17.03.2010, 19:27

Diese Lösung gefällt mir sehr gut, ist es möglich dies noch zu verfeinern, sodass die Zelle nur dann aktualisiert wird, wenn tatsächlich irgendwo eine Eingabe vorgenommen geändert wird ?

0
arminho1  19.03.2010, 13:14
@Leon97531

Hmm, das Change-Ereignis wird nur dann initiiert, wenn eine Eingabe/Änderung gemacht wird. Geht deine Frage in die Richtung, dass bei reinen Änderungen (also nicht Neueingabe) nichts passieren soll? Ansonsten müsste es das eigentlich schon sein...

0
Leon97531  19.03.2010, 14:09
@arminho1

Hmm, im Moment mit obigen Code erfolgt eine Aktualisierung des Datums in A1 jedesmal dann, wenn irgendeine Zelle in der Arbeitsmappe ausgewählt wird.
Meine Frage geht dahin, dass erst bei Eingabe oder Änderung in einer Zelle eine Aktualisierung stattfindet.
.
Kurz: Jemand öffnet die Datei, klickt in eine Zelle und es erfolgt eine Aktualisierung des Datums.
Ich möchte dies aber nicht, sondern erst nachdem tatsächlich eine Änderung in einer Zelle vorgenommen wurde.

0
arminho1  23.03.2010, 02:33
@Leon97531

Hab's gerade erst gelesen. Das was du beschreibst passiert eigentlich bei SelectionChange während Change tatsächlich nur dann greift, wenn etwas geändert wird. Change greift definitiv nicht bei bloßem Auswählen einer Zelle (einfacher Klick). Allerdings musst du aufpassen. Doppelklick in eine Zelle und anschließender Return bewirkt auch das Change-Ereignis (wahrscheinlich meinst du das). Aus meiner Sicht hat man keine Chance auch das noch abzufangen, denn es gibt keine Eigenschaft OldValue wie in Access, so dass man den alten gegen den neuen Wert vergleichen könnte... Aber mal ehrlich: wer klickt schon doppelt in eine Zelle, ohne sie ändern zu wollen?

0
Leon97531  23.03.2010, 22:46
@arminho1

Verdammt, hatte tatsächlich SelectionChange ausgewählt, Schande über mein Haupt :))
.
Funktioniert einwandfrei, Danke dir.

0

ich würde auf einer beliebigen Zelle das aktuelle Datum einfügen =heute(), dieses unsichtbar machen und im Makro eine Kopierfunktion dieser Zelle schreiben


arminho1  16.03.2010, 18:33

Von hinten durch die Brust ins Auge... ;o)

0
LadyBibi  17.03.2010, 07:39
@arminho1

... danke - man muss nicht alles wissen, aber wissen wie man sich helfen kann ;)

0
arminho1  17.03.2010, 13:21
@LadyBibi

Ist auch ok. Ich habe ja auch nicht geschrieben, dass es falsch ist. Bevor man es gar nicht hinbekommt, dann lieber so. :-)

0

Für das Feld A1:

cells(1,1) = date