Microsoft Excel

Herbers Excel/VBA-Archiv

Probleme beim protollieren

Betrifft: Probleme beim protollieren von: Scotty
Geschrieben am: 01.09.2004 10:40:51

Hallo alle zusammen,

habe ein Prob beim protokollieren von Änderungen auf einen Tabellenblatt.
Habe Arbeitsmappe mit Blatt x und Arbeitsblatt Protokoll. In x werden Änderungen gemacht, die mit folgendem Makro protokolliert werden:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
InhaltAlt = Target.Value
ZellAddress = Target.Address(False, False, xlA1)
End Sub


Private Sub worksheet_change(ByVal Target As Range)
Dim ZeileText, SpalteText, InhaltNeu, Benutzer As String, DatZeit
ZeilProt = Worksheets("Protokoll").Range("A1").CurrentRegion.Rows.Count + 1
InhaltNeu = Target.Value
If InhaltNeu = "" Then
   InhaltNeu = "[leer]"
End If
If InhaltAlt = "" Then
   InhaltAlt = "[leer]"
End If
ZeileText = Cells(Target.Row, 1)
SpalteText = Cells(1, Target.Column)
Benutzer = Application.UserName
DatZeit = Date + Time
With Worksheets("Protokoll")
.Cells(ZeilProt, 1).Value = ActiveSheet.Name
.Cells(ZeilProt, 2).Value = ZellAddress
.Cells(ZeilProt, 3).Value = InhaltAlt
.Cells(ZeilProt, 4).Value = InhaltNeu
.Cells(ZeilProt, 5).Value = Benutzer
.Cells(ZeilProt, 6).Value = DatZeit
End With
ZeilProt = ZeilProt + 1
End Sub




Das Makro funktioniert bestens, bis auf ein Prob. Wenn ich Änderungen in x vornehme, indem ich Zellen durch "ziehen" kopiere, macht das Makro Probleme. Es bleibt immer an der Stelle "If InhaltNeu = "" Then..." gelb markiert stehen.
Hat jemand eine Idee, wie man das beheben kann? Es sollen auch solche Änderungen protokolliert werden.

Vielen Dank vorab für eure Mühen
Scotty
  


Betrifft: AW: Probleme beim protollieren von: franz_da
Geschrieben am: 01.09.2004 11:14:04

warum erfindest Du das Rad neu? Gebe einfach das Arbeitsblatt frei... es gibt bereits eine gut funktionierende Protokollierungsfunktion. Über "änderungen verfolgen und hervorheben kannst Du dann alles angucken und dir das protokoll als zusätzl. Excel-Blatt ausgeben lassen mit Datum, uhrzeit und Benutzer(der es verändert hat)

Grüße aus DA,
Franz


  


Betrifft: AW: Probleme beim protollieren von: Scotty
Geschrieben am: 01.09.2004 11:27:30

Danke Franz,

möchte aber auch meine eigenen Änderungen protokollieren. Die sehe ich auf den von dir beschriebenen Weg nicht. Außerdem kann man dies leicht austricksen. Möchte, das da nicht manipuliert werden kann. Von Vba haben wenige Ahnung und das Blatt Protokoll soll ausgeblendet werden.

Hast du noch ne Idee??

Gruß Scotty


  


Betrifft: AW: Probleme beim protollieren von: franz_da
Geschrieben am: 01.09.2004 15:00:52

ääähm, eine andere Idee hätte ich da nicht (momentan wenig Zeit) .. aber auch Deine Änderungen werden fleissig mit protokolliert und das Blatt Protokoll brauchst Du ja erst gar nicht anzeigen zu lassen.
Gib einfach mal ein Arbeitsblatt wie folgt frei :
Extras-Schutz-Arbeitsmappe schützen und freigeben
checkbox "freigabe mit änderungsprotokoll" aktivieren, kennwort vergeben (GUT MERKEN!)

sooo, jetzt ist alles getan.

Jetzt hast Du genau die einstellungen, die Du haben willst.
Teste die Wirksamkeit :
ändere ein paar zellen willkürlich
speichere ab
ändere weitere zellen willkürlich, verschiebe auch mal ein paar zellen
dann gehe auf extras-änderungen verfolgen-änderungen hervorheben
Unter Wann stellst Du "alle" ein und unter wer "jeder"
setze jetzt vielleicht noch die erste checkbox "Änderungen auf dem Bildschirm hervorheben" auf inaktiv, dafür aber auf jeden fall die zweite checkbox "änderungen auf einem neuen Blatt protokollieren".
Nun siehst Du schöööön säuberlich alles was passiert ist, auch von Dir!
das blatt kannst Du auch wieder löschen, es ist nur ein generierter report
Ich hoffe Dir geholfen zu haben, scotty?


Gruß,
Franz