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

Forumthread: Wenn Spalte ändert dann setzte Datum

Wenn Spalte ändert dann setzte Datum
28.04.2018 16:26:33
Harry
Hallo zusammen
Ich bin zum glück mal auf dieses gute Forum gestossen und habe natürlich auch gleich eine Frage:
In meinem Excelsheet möchte ich das, wenn sich im Bereich F11 bis AA500 etwas ändert, genau in dieser Spalte auf der zweiten Zeile das Datum eingetragen wird plus in der Dritten Zeile wer es geändert hat.
Zur Zeit überwache ich die wie folgt:
Private Sub Worksheet_Change(ByVal Target As Range)
SpalteF:
If Intersect(Target, Range("F11:F500")) Is Nothing Then GoTo SpalteG
Range("F2") = Date
Range("F3") = Environ("Username")
SpalteG:
If Intersect(Target, Range("G11:G500")) Is Nothing Then GoTo SpalteH
Range("G2") = Date
Range("G3") = Environ("Username")
SpalteH:
usw. usw...
End Sub

Natürlich funktioneirt dies, aber irgendwie geht das sicher auch ein bisschen hübscher und schneller, oder? Bin über jeden Tipp glücklich und dankbar.
Gruss
Harry
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn Spalte ändert dann setzte Datum
28.04.2018 16:33:54
Hajo_Zi
Hallo Harry,
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("F11:G500")) Is Nothing Then
Application.EnableEvents = False
Cells(2, Target.Column) = Date
Cells(3, Target.Column) = Environ("Username")
Application.EnableEvents = True
End If
End Sub

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Anzeige
AW: Wenn Spalte ändert dann setzte Datum
28.04.2018 16:52:55
Harry
Wow, jetzt bin ich Baff.....
Mit einer so schnellen Antwort habe ich niemals gerechnet.
Vielen dank. Nun geht es etwas schneller :-)
Gruss
Harry
Danke für Rückmeldung oT
28.04.2018 16:53:49
Hajo_Zi
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Datum und Benutzer bei Änderungen in Excel automatisch eintragen


Schritt-für-Schritt-Anleitung

Um in Deinem Excel-Sheet automatisch das Datum und den Benutzernamen bei Änderungen in einem bestimmten Bereich einzutragen, kannst Du den folgenden VBA-Code verwenden. Dieser Code überwacht die Zellen im Bereich F11 bis AA500:

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

  2. Wähle das entsprechende Arbeitsblatt aus, indem Du im Projekt-Explorer das Blatt auswählst, das Du bearbeiten möchtest.

  3. Füge den folgenden Code in das Codefenster ein:

    Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Range)
       If Not Intersect(Target, Range("F11:AA500")) Is Nothing Then
           Application.EnableEvents = False
           Cells(2, Target.Column) = Date
           Cells(3, Target.Column) = Environ("Username")
           Application.EnableEvents = True
       End If
    End Sub
  4. Schließe den VBA-Editor und speichere Deine Excel-Datei als Makro-fähige Datei (.xlsm).

  5. Teste die Funktionalität, indem Du eine Zelle im Bereich F11 bis AA500 änderst. Das aktuelle Datum und Dein Benutzername sollten automatisch in Zeile 2 und 3 der entsprechenden Spalte erscheinen.


Häufige Fehler und Lösungen

  • Fehler: Der Code funktioniert nicht.
    Lösung: Stelle sicher, dass Du die Datei als Makro-fähige Datei (.xlsm) speicherst. Überprüfe auch, ob Makros in den Excel-Optionen aktiviert sind.

  • Fehler: Es wird kein Datum oder Benutzername angezeigt.
    Lösung: Überprüfe, ob der Code im richtigen Arbeitsblatt-Modul ist und dass der Bereich korrekt definiert ist.

  • Fehler: Das Datum wird nicht aktualisiert.
    Lösung: Stelle sicher, dass die Application.EnableEvents-Einstellung auf True gesetzt ist, nachdem die Änderungen vorgenommen wurden.


Alternative Methoden

Anstelle des VBA-Codes kannst Du auch Excel-Formeln und die Funktion "Jetzt()" nutzen, um das Datum anzuzeigen. Beachte jedoch, dass diese Methode nicht das Benutzername-Feld unterstützt. Eine mögliche Formel könnte sein:

=Wenn(A1<>"";Jetzt();"")

Diese Formel aktualisiert das Datum, wenn sich der Wert in A1 ändert, jedoch ist sie nicht so flexibel wie die VBA-Lösung.


Praktische Beispiele

Hier sind einige Anwendungsmöglichkeiten des oben genannten Codes:

  • Projektdokumentation: Halte fest, wann Änderungen an wichtigen Dokumenten vorgenommen wurden.
  • Teamarbeit: Verfolge, wer Änderungen an einem gemeinsamen Arbeitsblatt vorgenommen hat.
  • Datenpflege: Stelle sicher, dass alle Veränderungen in einem bestimmten Datenbereich dokumentiert werden.

Tipps für Profis

  • Optimierung des Codes: Du kannst weitere Bedingungen hinzufügen, um spezifische Änderungen zu überwachen.
  • Ereignisprozeduren: Nutze andere Ereignisprozeduren wie Worksheet_Activate oder Worksheet_Deactivate, um zusätzliche Aktionen auszuführen, wenn das Arbeitsblatt aktiv oder inaktiv wird.
  • Schutz des Arbeitsblatts: Schütze das Arbeitsblatt, um unautorisierte Änderungen am Code zu verhindern und gleichzeitig die Automatisierung beizubehalten.

FAQ: Häufige Fragen

1. Kann ich den Bereich ändern, den der Code überwacht?
Ja, du kannst den Bereich in der Intersect-Funktion anpassen, um andere Zellen zu überwachen.

2. Funktioniert dieser Code in Excel 2016 und 365?
Ja, der Code ist mit Excel 2016 und Excel 365 kompatibel.

3. Was passiert, wenn ich mehrere Zellen gleichzeitig ändere?
Der Code wird für jede geänderte Zelle in der überwachten Range ausgeführt und trägt das Datum und den Benutzernamen für jede betroffene Spalte ein.

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