Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datum letzte Änderung | Herbers Excel-Forum

Forumthread: Datum letzte Änderung

Datum letzte Änderung
07.01.2010 13:33:08
Steve

Hallo Leute,
habe ein weiteres Problem mit meinem Excel-Projekt. Ich habe aus dem Forum ein VBA Skript zum einfügen einer letzten Änderung gefunden:
https://www.herber.de/bbs/user/67037.xlsm
Leider weiß ich nicht wie ich den "Schreibebereich" eingrenzen kann. Derzeit werden die Zeilen E:O überwacht und in P das Datum + der Benutzer geschrieben.
Wie kann man VBA sagen, dass es eigentlich nur im "Tabellenbereich" dies durchführen soll (der Bereich den man "als Tabelle formatieren" anlegt). Denn weder brauche ich die Funktion in den Spaltenüberschriften noch unter der Summenfunktion.
Vielen Dank für eure Hilfe.
P.S. Die Tabelle wird noch länger, d.h. ich kann mich nicht fix auf 10 Zeilen beziehen.

Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum letzte Änderung
07.01.2010 13:45:56
Tino
Hallo,
so z. Bsp. der Bereich E2:O11
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Set Bereich = Intersect(Range("E2:O11"), Target)
If Not Bereich Is Nothing Then
Application.EnableEvents = False
Cells(Bereich.Row, 16) = Format(Now, "DD.MM.YYYY hh:mm ") & Application.UserName
Application.EnableEvents = True
End If
End Sub
Gruß Tino
Anzeige
oder mit Schleife für alle Zellen im Bereich
07.01.2010 13:47:50
Tino
Hallo,
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Set Bereich = Intersect(Range("E2:O11"), Target)
If Not Bereich Is Nothing Then
Application.EnableEvents = False
For Each Bereich In Bereich
Cells(Bereich.Row, 16) = Format(Now, "DD.MM.YYYY hh:mm ") & Application.UserName
Next Bereich
Application.EnableEvents = True
End If
End Sub
Gruß Tino
Anzeige
AW: oder mit Schleife für alle Zellen im Bereich
07.01.2010 14:23:31
Steve
o.k. das funktioniert zwar, aber ich muss in der Range immer den Bereich angeben. Wenn jetzt aber in der Tabelle 10 neue Zeilen hinzukommen, möchte ich nicht jedes mal den Code anpassen müssen.
dann breuchen wir die letzte Zeile
07.01.2010 14:39:56
Tino
Hallo,
wir müssen die letzte Zeile bestimmen, im Beispiel anhand der Spalte 1,
da die letzte eine Zusammenfassung ist müssen wir von der letzten noch eins abziehen.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Dim LRow As Long
LRow = Cells(Rows.Count, 1).End(xlUp).Row
Set Bereich = Intersect(Range("E2:O" & LRow - 1), Target)
If Not Bereich Is Nothing Then
Application.EnableEvents = False
For Each Bereich In Bereich
Cells(Bereich.Row, 16) = Format(Now, "DD.MM.YYYY hh:mm ") & Application.UserName
Next Bereich
Application.EnableEvents = True
End If
End Sub
Gruß Tino
Anzeige
AW: dann breuchen wir die letzte Zeile
07.01.2010 14:55:33
Steve
Genau so habe ich das gebraucht. Du bist der Beste.
P.S. Ich habe es mir jetzt noch ein bisschen angepasst und den Benutzer und die Uhrzeit getrennt:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Dim LRow As Long
LRow = Cells(Rows.Count, 1).End(xlUp).Row
Set Bereich = Intersect(Range("e9:O" & LRow - 1), Target)
If Not Bereich Is Nothing Then
Application.EnableEvents = False
For Each Bereich In Bereich
Cells(Bereich.Row, 16) = Format(Now, "DD.MM.YYYY")
Cells(Bereich.Row, 17) = Format(Now, "hh:mm")
Cells(Bereich.Row, 18) = Application.UserName
Next Bereich
Application.EnableEvents = True
End If
End Sub

Anzeige
AW: dann breuchen wir die letzte Zeile
07.01.2010 14:58:46
Hajo_Zi
Hallo Steve,
Dir ist aber bekannt das Du Text in die Zellen schreibst und nicht Datum, Uhrzeit?

AW: dann breuchen wir die letzte Zeile
07.01.2010 15:04:12
Steve
Ja, aber ich kann das ja als solches formatieren und ich will es zum Vergleichen und weiterrechnen benutzen und erste Tests haben funktioniert.
Anzeige
schreibe besser...
07.01.2010 15:02:37
Tino
Hallo,
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Dim LRow As Long
LRow = Cells(Rows.Count, 1).End(xlUp).Row
Set Bereich = Intersect(Range("E2:O" & LRow - 1), Target)
If Not Bereich Is Nothing Then
Application.EnableEvents = False
For Each Bereich In Bereich
Cells(Bereich.Row, 16) = Time
Cells(Bereich.Row, 17) = Date
Cells(Bereich.Row, 18) = Application.UserName
Next Bereich
Application.EnableEvents = True
End If
End Sub
Die Zellen vorher Formatieren für Uhrzeit und Datum
Gruß Tino
Anzeige
AW: schreibe besser...
07.01.2010 15:05:45
Steve
o.k. und wie mache ich bei time die 24h Formatierung?
24:00 Uhr gibt es im eigentlichen Sinne nicht.
07.01.2010 15:13:15
Tino
Hallo,
unter Uhrzeit das entsprechende Format auswählen.
Ein Tag geht von 00:00 Uhr und geht bis 23:59 Uhr
Gruß Tino
ich meine die Zellformatierung. ;-) oT.
07.01.2010 15:14:37
Tino
Anzeige
hat geklappt - vielen Dank owT
07.01.2010 15:19:03
Steve
.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datum der letzten Änderung in Excel anzeigen


Schritt-für-Schritt-Anleitung

Um das Datum der letzten Änderung in Excel anzuzeigen, kannst du entweder VBA verwenden oder eine Formel einsetzen. Hier ist eine einfache Anleitung zur Verwendung eines VBA-Skripts:

  1. Öffne dein Excel-Dokument und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Wähle das Arbeitsblatt aus, in dem du das Datum der letzten Änderung einfügen möchtest.

  3. Füge folgenden Code in das Arbeitsblattmodul ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim Bereich As Range
       Dim LRow As Long
       LRow = Cells(Rows.Count, 1).End(xlUp).Row
       Set Bereich = Intersect(Range("E2:O" & LRow - 1), Target)
       If Not Bereich Is Nothing Then
           Application.EnableEvents = False
           For Each Bereich In Bereich
               Cells(Bereich.Row, 16) = Format(Now, "DD.MM.YYYY hh:mm ") & Application.UserName
           Next Bereich
           Application.EnableEvents = True
       End If
    End Sub
  4. Schließe den VBA-Editor und teste die Änderung in den Zellen E2 bis O (der Bereich kann je nach Bedarf angepasst werden).

Mit diesem Skript wird das Datum und die Uhrzeit der letzten Änderung in der 16. Spalte (Spalte P) angezeigt.


Häufige Fehler und Lösungen

  • Fehler: Das Datum wird nicht aktualisiert.
    Lösung: Stelle sicher, dass die Application.EnableEvents auf False gesetzt wird, bevor du die Zellen änderst. Dies verhindert, dass die Worksheet_Change-Ereignisprozedur erneut ausgelöst wird.

  • Fehler: Die Zellen zeigen nur Text an.
    Lösung: Achte darauf, dass die Zellen, in denen das Datum eingefügt wird, im Datumsformat formatiert sind.


Alternative Methoden

Wenn du die letzte Änderung ohne VBA anzeigen möchtest, gibt es einige alternative Methoden:

  • Formel für das Datum der letzten Änderung:
    Du kannst eine einfache Formel verwenden, um den letzten Bearbeitungszeitpunkt in einer Zelle anzuzeigen. Hierbei wird jedoch nicht die exakte Zeit erfasst, sondern nur das Datum der letzten Speicherung.

  • Fußzeile für die letzte Aktualisierung:
    Du kannst die Fußzeile deines Excel-Dokuments anpassen, um das Datum der letzten Speicherung anzuzeigen. Gehe dazu zu Seitenlayout -> Drucken -> Fußzeile und füge &D ein.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du das Datum der letzten Änderung in Excel verwenden kannst:

  • Projektüberwachung: Halte den Überblick über die letzte Aktualisierung deiner Projektdateien, indem du das Datum der letzten Änderung in einer speziellen Spalte anzeigst.
  • Versionskontrolle: Verwende die Funktion, um zu dokumentieren, wann Änderungen an bestimmten Daten vorgenommen wurden. Dies kann besonders nützlich sein, wenn mehrere Benutzer auf die Datei zugreifen.

Tipps für Profis

  • Datenformatierung: Stelle sicher, dass die Zellen für Datum und Uhrzeit richtig formatierte sind, um Verwirrung zu vermeiden.
  • Automatisierung: Verwende VBA, um den Prozess der Datumsaktualisierung zu automatisieren und Fehler zu minimieren.
  • Benutzeranpassung: Du kannst den Code anpassen, um nur bestimmte Benutzer zu verfolgen oder zusätzliche Informationen zu speichern, wie z.B. den letzten Bearbeiter in einer separaten Zelle anzuzeigen.

FAQ: Häufige Fragen

1. Wie kann ich das Datum der letzten Änderung ohne VBA anzeigen?
Du kannst das Datum der letzten Speicherung in der Fußzeile anzeigen oder eine Formel verwenden, jedoch wirst du nicht in der Lage sein, das exakte Änderungsdatum in einer Zelle zu speichern.

2. Wie formatiere ich die Zellen für das Datum richtig?
Gehe zu Start -> Zahlenformat und wähle Datum oder Uhrzeit, um die gewünschten Formate anzuwenden.

3. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der VBA-Code sollte in den meisten modernen Excel-Versionen (Excel 2010 und neuer) funktionieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige