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

Änderungsprotokoll

Änderungsprotokoll
23.06.2005 09:53:13
magicman
Hallo Experten,
gibt es in XL eine Möglichkeit die Änderungen, die in einer Arbeitsmappe vorgenommen werden zu protokollieren?
Für eine unserer Abteilungen habe ich eine Tabelle mit einem Sortiermakro ausgestattet und jetzt beschweren sich die User, das seit dieser Änderungen Formeln gelöscht werden. Dabei wird die Formel mit einer 0 überschrieben oder gelöscht.
hier mein VBA-Code:

Sub Sortieren()
Dim lonLänge As Long
lonLänge = Cells(65535, 1).End(xlUp).Row
Range(Cells(17, 1), Cells(lonLänge, 17)).Sort Key1:=Range("q18"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub

Daran kann es ja nicht liegen!
Jetzt suche ich nach einer Möglichkeit die Änderungen zu protokollieren um nachweisen zu können, das die Formel über eine Eingabe gelöscht wurde.
Es brauchen auch nur Eingaben/Löschungen/Überschreibungen dokumentiert werden, die Sortierung funktioniert ja.
Gruß und Danke für alle Tipps.
Michael

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

Betreff
Datum
Anwender
Anzeige
AW: Änderungsprotokoll
23.06.2005 09:55:34
Matthias
Hallo Michael,
ein Blattschutz geht nicht?
Gruß Matthias
AW: Änderungsprotokoll
23.06.2005 10:25:59
magicman
Hallo Matthias,
nein einen Blattschutz kann ich nicht einbauen, da in der Tabelle laufend Datenzeilen hinzugefügt bzw. einzelne Daten verändert werden.
Gruß
Michael
AW: Änderungsprotokoll
23.06.2005 14:54:05
Luschi
Hallo magicman,
dann schütze doch Deine Formeln in der Weise, daß die User in die Formel-Zellen
gar nicht mehr auswählen können.
Wenn also in der Tabelle in Zelle "E4" die wichtige Formel steht und der User versucht
diese zelle "E4" zu markieren, dann wird der Zellen-Cursor sofort in Zelle"E5" gesetzt.
Das funzt auch, wenn versucht wird, einen größeren Bereich zu markieren und die Zelle "E4" ist darin enthalten.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rg As Range
Set rg = Application.Intersect(Target, Range("E4"))
If Not (rg Is Nothing) Then
ActiveSheet.Range("$E$5").Select
End If
End Sub

Gruß von Luschi
aus klein-Paris
Anzeige
leider nein...
23.06.2005 15:23:29
magicman
Hallo Luschi,
danke für deinen Tipp, kann ich in einer anderen Mappe verwenden, aber in der aktuellen Mappe geht es um Berechnungen, die auch mit Werten durchzuführen sind, die frei eingegeben werden müssen.
Jetzt wird halt behauptet, das diese Werte nach der sortierung verschwinden.
Habe die Mappe durchgecheckt und bei mir ist bei x-mal sortieren, ändern umsortieren einfügen etc nie ein Wert verschwunden.
Jetzt möchte ich halt ein Änderungsprotokoll, damit ich nachschauen kann was und wie da verschwunden ist.
Gibt es da evtl. ein Standard-Tool von XL?
Danke
Michael
Anzeige
AW: leider nein...
23.06.2005 15:42:16
Matthias
Hallo Michael,
Menü Extras - Arbeitsmappe freigeben - da kann man auch ein Änderungsprotokoll führen lassen.
Gruß Matthias
Danke schön ;-)
23.06.2005 15:46:32
magicman
Danke für den Tipp,
werde mir die Funktion mal anschauen und ggf. nutzen.
Schönen Abend noch.
Michael
Danke
23.06.2005 15:58:05
magicman
Hallo Luschi,
danke für den Link, kann ich im aktuellen Fall nicht verwenden, weil die Datei nicht auf dem zentralen Server liegt.
Gruß
Michael
Anzeige
AW: Änderungsprotokoll
23.06.2005 15:48:42
Dieter
Hi Michael
probiers mal so:
Option Explicit
''''''''''''''''''''''''''''
' Protokollierung bei SelectionChange und Change Ereignis
''''''''''''''''''''''''''''
Public varValue As String
Public strAddress As String

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
varValue = CStr(ActiveCell.Formula)
strAddress = ActiveCell.Address
End Sub


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
On Error Resume Next
Dim intRow As Integer
If CStr(Target.Formula) <> varValue Then
With Worksheets("Tabelle2")
intRow = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(intRow, 1).Value = strAddress
.Cells(intRow, 2).Value = "'" & varValue
.Cells(intRow, 3).Value = "'" & Target.Formula
.Cells(intRow, 4).Value = Now()
.Cells(intRow, 5).Value = Environ("Username") & " " & Application.UserName
varValue = CStr(Target.Value)
End With
End If
End Sub

Obigen Code z.B. in deine Tabelle1 (Ereigniscode)eingeben,
in Tabelle2 wird dann alles protokolliert, dieses Sheet kannst Du ja HIDDEN setzen
Rückantwort wäre nett
sonst noch Fragen
Gruss und schwitz Dieter
Anzeige
Spitze, werde ich verwenden
23.06.2005 15:55:37
magicman
Danke Dir,
den Code werde ich wohl öfters verwenden.
Gruß
Michael
Spitze, werde ich verwenden
23.06.2005 15:56:50
magicman
Danke Dir,
den Code werde ich wohl öfters verwenden.
Gruß
Michael
AW: Spitze, werde ich verwenden
23.06.2005 15:59:34
Dieter
Hi Michael
Hauptsache der Code hat geholfen, ich hoffe, Du bist damit klargekommen!
Danke für die Rückmeldung
Dieter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige