Thema Datum  Von Nutzer Rating
Antwort
07.05.2008 08:08:00 Stefan
NotSolved
07.05.2008 20:36:44 jh
Solved
08.05.2008 14:15:59 Stefan
NotSolved
Blau Aw:Mit VBA Zellbereiche protokollieren
08.05.2008 17:00:15 jh
NotSolved
08.05.2008 19:57:28 Stefan
NotSolved
13.05.2008 08:09:01 Stefan
NotSolved

Ansicht des Beitrags:
Von:
jh
Datum:
08.05.2008 17:00:15
Views:
995
Rating: Antwort:
  Ja
Thema:
Aw:Mit VBA Zellbereiche protokollieren
Hallo,

soweit ist das meiste klar, allerdings ergibt sich doch noch
eine Frage. Wie du schreibst, soll die Protokollierung in den
Spalten AP bis AS in der jeweiligen Zeile, wo etwas geändert
wurde erfolgen. Ich kenne ja nun nicht die Struktur deiner
Tabelle, aber wenn in ein und derselben Zeile mehrere
Spalten geändert werden, erscheint dann im Protokoll nur die
zuletzt geänderte Spalte. Falls das so gewollt ist, okay (die
Anzahl von 31 Spalten lässt vermuten, dass es sich um die Tage
eines Monats handelt und tatsächlich immer nur ein Tag
bearbeitet wird). Mein Lösungsvorschlag geht jedenfalls erst
mal davon aus, dass es so oder ähnlich ist.

Bei dem überschaubaren Umfang der Aufgabe lassen wir das erst
mal mit dem zweiten Blatt, in dem alle relevanten Werte
zwischengespeichert werden sollen. Die Methode, die ich hier
anwende, um an die alten Daten zu kommen, gefällt mir zwar
persönlich nicht so, aber sie funktioniert, wie gesagt unter
der Voraussetzung, dass die Änderung durch eine echte
Benutzeraktion und nicht durch ein Makro zustandekommt.

Folgenden Code in den Bereich "Tabelle1":

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim rngT As Range, lngZ As Long, vntAlt As Variant, _
vntNeu As Variant
If Not Application.Intersect(Range("B2:AF30"), Target) _
Is Nothing Then
Set rngT = Target
lngZ = rngT.Row
vntNeu = rngT.Value
Application.EnableEvents = False
Application.Undo
vntAlt = rngT.Value
rngT.Value = vntNeu
Application.EnableEvents = True
Cells(lngZ, 42) = Application.UserName ' Spalte AP
Cells(lngZ, 43) = Format(Now, "dd.mm.yyyy hh:mm")
Cells(lngZ, 44) = vntAlt
Cells(lngZ, 45) = vntNeu
Columns("AP:AS").AutoFit
End If
End Sub

Ich hoffe, das entspricht in etwa deinen Vorstellungen
und wünsche dir schon mal ein frohes Pfingstfest.

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
07.05.2008 08:08:00 Stefan
NotSolved
07.05.2008 20:36:44 jh
Solved
08.05.2008 14:15:59 Stefan
NotSolved
Blau Aw:Mit VBA Zellbereiche protokollieren
08.05.2008 17:00:15 jh
NotSolved
08.05.2008 19:57:28 Stefan
NotSolved
13.05.2008 08:09:01 Stefan
NotSolved