Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Änderungen in einem separaten Tabellenblatt.....

Änderungen in einem separaten Tabellenblatt.....
10.12.2012 11:25:10
Lars
Hi hallo,
bräuchte mal wieder eure Hilfe, ich habe ein Tabellenblatt in dem von verschiedenen Mitarbeitern Änderungen vorgenommen werden können, ich würde gerne in einem zweiten Blatt die Änderungen laufend dokumentieren.
Das zweite Blatt sollte die Informationen enthalten wer hat was, wann geändert.
und dann natürlich historisiert ;-)
Vielen Dank für Eure Hilfe
Lars

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Änderungen in einem separaten Tabellenblatt.....
10.12.2012 11:34:13
Rudi
Hallo,
als Ansatz:
Private Sub Worksheet_Change(ByVal Target As Range)
With Sheets(2).Cells(Rows.Count, 1).End(xlUp)
.Offset(1, 0) = Now
.Offset(1, 1) = Target.Address
.Offset(1, 2) = Target
.Offset(1, 3) = Environ("Username")
End With
End Sub

Gruß
Rudi

Anzeige
AW: Änderungen in einem separaten Tabellenblatt.....
10.12.2012 12:30:17
Lars
Hallo Rudi vielen Dank schonmal,
habe noch zwei kleine Fragen, ist es auch möglich, daß nur vor dem Speichern geprüft wird was sich geändert hat und das dann fortgeschrieben wird ?
Zweite Frage wie kann ich einen Blattschutz auf die Historie machen, so daß keiner Sie ändern kann ?
Danke dir sehr

Anzeige
AW: Änderungen in einem separaten Tabellenblatt.....
11.12.2012 10:41:58
Klaus
ist es auch möglich, daß nur vor dem Speichern geprüft wird was sich geändert hat und das dann fortgeschrieben wird ?
Nein. Woher soll Excel denn wissen, was sich geändert hat?
Du musst schon eins der Konzepte verfolgen: 1) bei Start ALLES irgendwohin kopieren um dann vor dem speichern damit zu vergleichen oder 2) Bei jeder Änderung protokollieren.
Ich sehe keinen Vortel in Variante 1), und für Variante 2) hast du eine Lösung.
wie kann ich einen Blattschutz auf die Historie machen,
schreibe als erste Zeile nach dem with in den code .protect password:="DeinPasswort"und als letzte Zeile vor dem End With .unprotect password:="DeinPasswort"
so daß keiner Sie ändern kann ?
Das geht leider gar nicht. Den Excel-Passwortschutz kann man innerhalb von unter 10sek aushebeln wenn man weiss wie es geht -- wenn nicht, dauert es 5 minuten länger fürs googeln.
Die Frage ist, wie sicher brauchst du es? Es gibt besseren Schutz als Blattschreibschutz, aber mit krimineller Energie ist alles zu knacken.
Grüße,
Klaus M.vdT.

Anzeige
Rad neu erfinden : Tante GOOGLE hilft...
10.12.2012 11:36:10
NoNet
Hallo Lars,
diese Frage wird in regelmässigen Abständen in diversen Excel-Foren immer wieder gestellt und es gibt dazu bereits zig Antworten und teilweise auch einige Lösungen.
Nur als Tipp : Du musst das Rad nicht neu erfinden, wenn Du mal unserer aller liebe "Tante Google" bemühst :
www.google.de/#hl=de&q=excel+änderungshistorie
Gruß, NoNet
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Änderungen in einem separaten Tabellenblatt dokumentieren


Schritt-für-Schritt-Anleitung

Um Änderungen in einem Excel-Arbeitsblatt zu protokollieren, kannst du den folgenden VBA-Code verwenden. Dieser wird Änderungen in einem zweiten Tabellenblatt dokumentieren, einschließlich wer, was und wann geändert wurde.

  1. Öffne die Excel-Datei und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Wähle das Arbeitsblatt aus, für das du die Änderungen verfolgen möchtest.

  3. Füge im Codefenster den folgenden Code ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       With Sheets(2).Cells(Rows.Count, 1).End(xlUp)
           .Offset(1, 0) = Now
           .Offset(1, 1) = Target.Address
           .Offset(1, 2) = Target
           .Offset(1, 3) = Environ("Username")
       End With
    End Sub
  4. Schließe den VBA-Editor und speichere die Datei als Excel-Arbeitsmappe mit Makros (*.xlsm).

  5. Teste die Änderungen im ersten Blatt und überprüfe das zweite Blatt auf die protokollierten Änderungen.


Häufige Fehler und Lösungen

  • Fehler: Änderungen werden nicht protokolliert.

    • Lösung: Stelle sicher, dass der VBA-Code im richtigen Arbeitsblatt eingefügt wurde und dass die Datei als Makro-fähige Arbeitsmappe gespeichert wurde.
  • Fehler: Das zweite Blatt bleibt leer.

    • Lösung: Überprüfe, ob das zweite Blatt korrekt referenziert ist (z.B. Sheets(2)), und dass keine Filter oder Datenvalidierungen die Eingaben blockieren.

Alternative Methoden

Wenn du keine VBA-Lösungen verwenden möchtest, gibt es auch alternative Methoden, um eine Änderungshistorie in Excel zu erstellen:

  1. Excel-Überwachungsfunktion: In neueren Excel-Versionen kannst du die Funktion „Änderungen verfolgen“ aktivieren. Gehe zu „Überprüfen“ > „Änderungen verfolgen“. Diese Funktion ermöglicht es dir, Änderungen in der gesamten Arbeitsmappe zu verfolgen.

  2. Manuelles Protokollieren: Du kannst manuell ein Protokollblatt erstellen, in dem alle Änderungen manuell eingegeben werden. Dies erfordert jedoch Disziplin und kann fehleranfällig sein.


Praktische Beispiele

Ein Beispiel für eine Änderungshistorie könnte so aussehen:

Datum Zelle Neuer Wert Benutzer
01.01.2023 10:00 Uhr A1 100 Max Mustermann
01.01.2023 10:05 Uhr B2 200 Lisa Müller

Du kannst den Code so anpassen, dass zusätzliche Informationen erfasst werden, wie z.B. der vorherige Wert oder Kommentare.


Tipps für Profis

  • Datenschutz: Wenn du sensible Daten hast, denke daran, dass Excel-Passwortschutz nicht unknackbar ist. Überlege dir alternative Sicherheitsmaßnahmen.

  • Automatisierung: Kombiniere die Änderungshistorie mit anderen Automatisierungsfunktionen von Excel, um Berichte oder Zusammenfassungen zu erstellen.

  • Regelmäßige Backups: Mache regelmäßig Backups deiner Dateiversionen, um bei Bedarf auf frühere Daten zugreifen zu können.


FAQ: Häufige Fragen

1. Wie kann ich die Änderungshistorie in Excel zurücksetzen?
Um die Änderungshistorie zurückzusetzen, kannst du das zweite Blatt löschen und den VBA-Code erneut ausführen. Dadurch wird eine neue Historie erstellt.

2. Ist es möglich, nur bestimmte Zellen zu überwachen?
Ja, du kannst den VBA-Code so anpassen, dass nur bestimmte Zellen oder Bereiche überwacht werden, indem du eine Bedingung hinzufügst, die den Target-Bereich überprüft.

3. Funktioniert dieser Code in älteren Excel-Versionen?
Der VBA-Code sollte in den meisten Excel-Versionen funktionieren, die das VBA-Programm unterstützen, jedoch können einige Funktionen in älteren Versionen fehlen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige