Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1944to1948
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

Änderung durch Nutzer protokollieren

Änderung durch Nutzer protokollieren
19.09.2023 21:01:26
Jens1187
Schönen Guten Abend,

Ich habe folgendes Problem:

Ich möchte in verschiedenen Spalten erfassen welcher Disponent eine Ab- bzw. Einschaltung eingetragen hat.
Sprich, trägt ein Disponent in Spalte C eine Abschaltung ein soll sein Name samt Datum in Spalte H eingetragen werden und
wird eine Einschaltung in Spalte K eingetragen soll das selbe in Spalte M passieren!

Prinzipiell bekomm ich das hin, allerdings immer nur für Spalte H oder M, nicht für beide!

Mein Code sieht aktuell so aus:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim User As String
Dim Schutz As Boolean

' User = Environ("UserName") 'Windows-Username
User = Application.UserName 'Excel User-Name
Schutz = True


If Target.Column = 3 Then

ActiveSheet.Unprotect "Test"
With Cells(Target.Row, Target.Column)
.Offset(0, 5) = User & Format(Date, "dd.MM.yyyy | ") & Format(Time, "hh:mm")


' elseIf Target.Column = 11 Then
'
' ActiveSheet.Unprotect "Test"
' With Cells(Target.Row, Target.Column)
' .Offset(0, 2) = User & Format(Date, "dd.MM.yyyy | ") & Format(Time, "hh:mm")

End With
If Schutz Then
ActiveSheet.Protect Password:="Test"
End If
End If


End Sub


Bei dem elseif kommt dann immer die Meldung "Else ohne If"....
Ich versteh aber ehrlich gesagt nicht wirklich wieso...

Vielen Dank schonmal im Voraus

Gruß Jens

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

Betreff
Datum
Anwender
Anzeige
AW: Änderung durch Nutzer protokollieren
19.09.2023 22:29:29
ralf_b
machs dir nicht so kompliziert. wichtig die Events ausschalten wenn man im Change Zellen bearbeitet.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim User As String

ActiveSheet.Unprotect "Test"

User = Application.UserName & Format(Date, "dd.MM.yyyy | ") & Format(Time, "hh:mm")
Application.EnableEvents = False

If Target.Column = 3 Then Cells(Target.Row, "H") = User
If Target.Column = 11 Then Cells(Target.Row, "M") = User

Application.EnableEvents = True
ActiveSheet.Protect Password:="Test"

End Sub
Anzeige
AW: Änderung durch Nutzer protokollieren
20.09.2023 15:58:36
Jens1187
Vielen Dank Ralf! Naja weißt ja, wieso einfach wenns auch kompliziert geht... Ich danke dir!!!

Ja Thorsten da weiß jeder Kollege bescheid und sieht es auch selber! Bisher hat sich aber keiner dran gestört!
Bei uns muss eh jeder für alles was er macht unterschreiben oder sich mit seinem persönlichen Account einloggen....

Gruß Jens
AW: Änderung durch Nutzer protokollieren
20.09.2023 02:00:25
Oberschlumpf
Hi Jens,

deine Kollegen wissen aber schon, dass sie mit immer wiederkehrender (User)Namensnennung überwacht werden?

Ciao
Thorsten
AW: Änderung durch Nutzer protokollieren
20.09.2023 11:41:25
ralf_b
@thorsten,

wo ist denn da der Unterscheid zu Datenbankzugriffen wo jeder Eintrag dem User zugeordnet werden kann?
In Sharepointexceldateien kannst du den Verlauf inklusive Änderungen der einzelnen User verfolgen und wiederherstellen.
Anzeige
AW: Änderung durch Nutzer protokollieren
20.09.2023 11:47:32
Oberschlumpf
Hi ralf,

wenn es zu den von dir genannten Zugriffen keinen Unterschied gibt, dann wusste ich das bisher einfach nicht.
Wo ich, als betroffener Kollege, eine Überwachung verhindern kann, wie z Bsp in Excel, da würde ich mich auch dafür einsetzen, zu verhindern.

Ciao
Thorsten

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige