Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1104to1108
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Änderungsdokumentation

Änderungsdokumentation
Stephan
Hallo Profis,
möchte gerne alle Änderungen eines oder mehrerer Arbeitsbläter fortlaufend in einem bestimmten Arbeitsblatt (Doku) der Datei dokumentieren. Dabei sollte aber beachtet werden, daß die x und y Achse flexiebel erweitert werden dürfen. Also ein User kann weitere Überschriften oder Zeile eingeben. Die Änderungen sollen immer dann abgespeichert werden wenn die Zelle verlassen, sowie die Datei abgespeichert wird.
Habe hier im Forum schon sehr lange gesucht und auch viele Beiträge gefunden, doch leider nichts passendes, das ich anpassen könnte.
Anbei eine Beispieldatei mit Beispieldoku
https://www.herber.de/bbs/user/64822.xls
Dies ist bestimmt auch für ein Profi eine Herausvorderung, oder?

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Änderungsdokumentation
01.10.2009 22:14:45
Hajo_Zi
Hallo Stephan,
in der Symmbolleiste gibt es doch schon Änderungen verfolgen. Ich habe jetzt kein 2003 auf.

AW: Änderungsdokumentation
01.10.2009 22:33:02
Stephan
Hallo Hajo,
hab ich gesehen, doch das hilft mir für meine Problemstellung leider icht weiter, da dies nur den letzten Eintrag anzeigt und auch relativ unkonfortabel ist.
Egal ob in 2003 oder andere Version. Ich habe gerade eben die 2003er Version, wenn es aber eine Lösung in VBA gibt, kann ich versuchen diese auf meine Version anzupassen.
AW: Änderungsdokumentation
01.10.2009 22:35:31
Stephan
.
hier mal nur als Grundgerüst ...
02.10.2009 00:36:03
Matthias
Hallo
https://www.herber.de/bbs/user/64824.xls


Der Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zeile As Long
Dim Spalte As Long
Dim Zelle As String
Dim Loletzte As Long
Dim Zeit As Date
Dim NewWert As String
Dim User As String
Dim Pfd As String
With Worksheets("Doku")
Loletzte = .Cells(Rows.Count, 1).End(xlUp).Row + 1
Pfd = ThisWorkbook.FullName
User = Environ("Username")
Zeit = Now
Zeile = Target.Row
Zelle = Target.Address
Spalte = Target.Column
NewWert = Target.Value
.Cells(Loletzte, 1) = Zeit
.Cells(Loletzte, 2) = Zelle
.Cells(Loletzte, 3) = Cells(8, Spalte).Text
.Cells(Loletzte, 4) = Cells(Zeile, 2).Text
.Cells(Loletzte, 5) = OldWert
.Cells(Loletzte, 6) = NewWert
.Cells(Loletzte, 7) = ActiveSheet.Name
.Cells(Loletzte, 8) = User
.Cells(Loletzte, 9) = Pfd
End With
End Sub
! OldWert ist als Public in einem Modul deklariert
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
OldWert = Target.Value
End Sub
Es muss noch ein Überlauf des Protokolls verhindert werden.
also wenn die Variable Loletzte zu groß wird.
aber probier erst mal das Grundgerüst.
Gruß Matthias
Anzeige
AW: hier mal nur als Grundgerüst ...
02.10.2009 06:49:38
Stephan
Hallo Matthias,
super, funktioniert sehr gut und ist varabel einstell- und erweiterbar!
kleines Problemchen noch:
wenn im Original mehrere Zellen per drag&drop markiert werden, kommt ein Laufzeitfehler. Kann das abgefangen werden, und in diesem Fall z.B. in einer zusätzlichen Spalte die Dokumentiert werden. Ich denke alles andere ist zu aufwendig.
Wenn dies aber gar nicht geht, sollte mind. nur der Laufzeitfehler abgefangen und verhindert werden, daß der User eine Mehrfachmarkierung überhaupt machen kann.
Gruß
Stephan
if Target.Count >1 then ...
02.10.2009 08:07:10
Matthias
Hallo
Frag if Target.Count >1 ab und setze ein Exit Sub
Ich hatte ja geschrieben "hier mal als Grundgerüst"
Wenn Du das Protokoll für alle Shets brauchst
musst Du natürlich umstrukturieren und den Code im
Private Sub Workbook_SheetChange abarbeiten.
Allerding würde ich das mit der Überschrift und der Zeile anders angehen.
Da Du ja sowieso die Zelladresse abfragst braucht man dies eigentlich nicht.
Auch musst Du noch die Variable Loletzte prüfen, ob nicht das Protokoll überläuft.

Gruß Matthias
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige