Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Hilfe beim Code

Forumthread: Hilfe beim Code

Hilfe beim Code
08.10.2015 14:37:18
Michael
Hallo zusammen,
ich habe folgenden Code um Änderungen mittels VBA zu tracken:
Option Explicit
Dim vOldVal 'Must be at top of module
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim bBold As Boolean
If Target.Cells.Count > 1 Then Exit Sub
On Error Resume Next
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
If IsEmpty(vOldVal) Then vOldVal = "Empty Cell"
bBold = Target.HasFormula
With Sheet2
.Unprotect Password:="Secret"
If .Range("A1") = vbNullString Then
.Range("A1:E1") = Array("CELL CHANGED", "OLD VALUE", _
"NEW VALUE", "TIME OF CHANGE", "DATE OF CHANGE")
End If
With .Cells(.Rows.Count, 1).End(xlUp)(2, 1)
.Value = Target.Address
.Offset(0, 1) = vOldVal
With .Offset(0, 2)
If bBold = True Then
.ClearComments
.AddComment.Text Text:= _
"Track Changes" & Chr(10) & "" & Chr(10) & _
"Bold values are the results of formulas"
End If
.Value = Target
.Font.Bold = bBold
End With
.Offset(0, 3) = Time
.Offset(0, 4) = Date
End With
.Cells.Columns.AutoFit
.Protect Password:="Secret"
End With
vOldVal = vbNullString
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
On Error GoTo 0
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
vOldVal = Target
End Sub
an sich eine feine Sache. Ich würde das Makro gerne erweitern. Und zwar würde ich gerne darstellen auf welchem Sheet die Änderungen vorgenommen wurden (momentan wird nur die Range angezeigt) und durch welchen Benutzer (quasi der Benutzername oben rechts in Excel). Für jede Hilfe wäre ich sehr dankbar. Leider reichen meine VBA Kenntnisse nicht aus um den Code selber anzupassen.
Gruß
Michael

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe beim Code
08.10.2015 15:48:41
Luschi
Hallo Michael,
MsgBox Sh.Name & " - " & Environ("Username")
verrät Dir beide Informationen, wobei 'Sh' der Übergabeparameter von
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
und 'Environ' eine Vba-Funktion ist.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Hilfe beim Code
08.10.2015 16:15:31
Michael
Danke Luschi!
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige