Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1952to1956
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
Inhaltsverzeichnis

Aktivitätenprotokoll

Aktivitätenprotokoll
22.11.2023 08:47:03
EasyD
Hallo Forum,

wer gibt mir den Schups in die richtige Richtung:

Ich möchte für 3 verschiedene Blätter einer Mappe eine Art Aktivitätenprotokoll erstellen.
Auf ein weiteres Blatt soll einfach stur Zeile für Zeile übertragen werden:

geändertes Blatt + Zelle
Benutzer
erfasster Wert
Zeitstempel

geht das auch einfacher als über ein Selection-Change in jedem der 3 Blätter?
Habe ich ein Problem, wenn die Eingaben in einer (intelligenten) Tabelle gemacht werden? Ich habe mittlerweile gelernt, dass VBA diese Tabellen nicht so richtig gerne mag.

und selbst mit dem Selection-Change -wie bekomme ich die 4 Angaben oben in das andere Blatt geschrieben, untereinander weg?

Dankeschön!

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aktivitätenprotokoll
22.11.2023 08:59:08
Pierre
Hallo,

Option Explicit

'einfügen in "DieseArbeitsmappe"
Dim LoLetzte As Long 'letzte genutzte Zeile ermitteln

Private Sub Workbook_SheetChange(ByVal sh As Object, ByVal Target As Range)
'schreibt alle Änderungen in ein Blatt: Blatt, Zelle, Änderung, Benutzer, Formel für echten Namen, Datum
Application.EnableEvents = False
With Worksheets("Tabelle4") 'Tabellenblattname, in dem Auflistung erfolgt, ggfls. ändern!
LoLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(Rows.Count, 1).End(xlUp).Row, .Rows.Count) + 1 'schreibt Änderung in die erste freie Zeile
.Cells(LoLetzte, 1) = sh.Name 'Spalte A: geändertes Blatt
.Cells(LoLetzte, 2) = Target.Address 'Spalte B: geänderte Zelle
.Cells(LoLetzte, 3) = Target 'Spalte C: Änderung
.Cells(LoLetzte, 4) = Environ("Username") 'Spalte D: Windows-Benutzer
.Cells(LoLetzte, 5).FormulaLocal = "=SVERWEIS($D2;User;2;1)" 'Spalte E: SVERWEIS-Formel zur Ermittlung des echten Namens
.Cells(LoLetzte, 6) = Now 'Spalte F: Änderungsdatum
End With
Application.EnableEvents = True
End Sub

Nr. 5 kannst du weglassen, wenn du den Klarnamen nicht brauchst.

Auf jeden Fall musst du den Blattnamen, auf dem die Auflistung erfolgen soll, ändern.

Gruß Pierre
Anzeige
AW: Aktivitätenprotokoll
22.11.2023 09:16:35
EasyD
Hallo Pierre

da hattest Du wohl schon was in Petto wie ich sehe ;)

Ich werde das testen, grundsätzlich sieht es so aus wie ich es mir vorstelle.
Anschlussfrage - wozu musst Du die Events abschalten?
ich fürchte nämlich (muss ich prüfen), dass mir dies andere/benötigte Funktionen in den 3 Blättern aushebeln würde.
Wäre das auch damit getan, das Screenupdating auszuschalten?

Dank Dir!
AW: Aktivitätenprotokoll
22.11.2023 09:46:56
Pierre
Hi,

ja, das ist in meiner Schatzkiste :)

Ich kann dir ehrlich nicht sagen, ob du das unbedingt brauchst mit den Events, ScreenUpdating dürfte nichts bringen, da du die Änderung zumindest im SheetChange-Event eh nur angezeigt bekommst, wenn du auf das entsprechende Blatt mit der Auflistung wechselst.

Versuch es einfach mal ohne Event Abschaltung, an sich sollte das ja auch ohne funktionieren. Weiß aber auch gar nicht mehr, warum ich das überhaupt mit drin habe (vermutlich in dem Originalcode drin gewesen, den ich mir geklaut habe).

Gruß Pierre
Anzeige
AW: Aktivitätenprotokoll
22.11.2023 12:18:56
EasyD
Läuft Pierre,
exakt was ich wollte, ohne großen HickHack!

Danke!
bitte, gerne (owT)
22.11.2023 13:14:09
Pierre

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige