Registriert seit: 11.05.2019
Version(en): Office 365
Hallihallo,
folgendes Problem stellt sich mir derzeit.
Ich möchte nachvollziehen können, welcher Nutzer zuletzt Änderungen an einem Dokument vorgenommen hat. Dazu erweitert sich per Makro das Kommentarfeld, je nachdem welcher Nutzer zuletzt in die jeweilige Zelle geklickt hat.
Das Makro funktioniert soweit ganz gut. Allerdings sind mir nun ein paar Schwächen aufgefallen, die ich nicht beseitigt bekomme.
1. Ich möchte diese Nachverfolgungsoption nicht auf dem gesamten Arbeitsblatt nutzen, sondern nur in gewissen Spalten.
2. Wie in der Beispieldatei zu sehen ist, wird das Kommentarfeld auch eingefügt, wenn man mit einem Doppelklick in die Zelle geht, ohne einen Eintrag zu machen. Das Kommentarfeld soll sich aber nur bei einer Veränderung der Zellenwerte erweitern.
Testdatei-Kommentar.xlsm (Größe: 16,01 KB / Downloads: 14)
Besten Dank im Voraus
Matze
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Moin!
11 Downloads (nicht von mir) und keine Antwort?
Dann dürfte es nicht an der Unfähigkeit der potentiellen Antworter liegen.
Bei Deinem Excel (365) würde ich einfach eine Freigabe (OneDrive (for buisiness) oder PowerBI) erteilen.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 11.05.2019
Version(en): Office 365
Moin Ralf,
meinst du das Problem lässt sich nicht lösen?
MfG
Matze
00202
Nicht registrierter Gast
Hallo, :19:
deine Beispieldatei zurück: :21:
[attachment=28825]
Registriert seit: 11.05.2019
Version(en): Office 365
Hallo case,
fast perfekt.
Eine Sache nur noch, wenn ich in die Zellen reinklicke, erscheint dort auch mein Name wenn ich keine Änderung in der Zelle vorgenommen habe.
Kann man das noch irgendwie umgehen? Es soll nur ein neuer Kommentar erscheinen, wenn auch tatsächlich Änderungen in der Zelle gemacht wurden.
MfG
Matze
00202
Nicht registrierter Gast
Hallo Matze, :19:
bei mir und in der Beispieldatei nicht. Hast du in deiner Datei noch ein "
Private Sub Worksheet_SelectionChange(ByVal Target As Range)" am laufen?
In der Beispieldatei wird
nur bei
Änderung im
entsprechenden Bereich der Kommentar
gesetzt.
Nicht bei Klick und
nicht bei Doppelklick
ohne Eingabe. :21:
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
eventuell ist auch der Fall gemeint, dass man im Eingabemodus nur ENTER drückt, ohne was zu aendern
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 11.05.2019
Version(en): Office 365
Ja genau der Fall den schauan beschreibt ist gemeint.
Ich mache einen Doppelklick in die Zelle und bestätige mit Enter ohne jedoch eine Änderung vorgenommen zu haben.
MfG
Matze
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Moin!
Dann schalte den Bearbeitungsmodus mittels Doppelklick doch einfach aus:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
End Sub
BearbMod per F2 ist davon nicht betroffen, muss aber sehr viel bewusster vorgenommen werden.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
12.01.2020, 13:49
(Dieser Beitrag wurde zuletzt bearbeitet: 12.01.2020, 13:49 von schauan.)
Hallöchen,
oder man ändert Code und zerpflückt den Kommentar …
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'Variablendeklarationen
Dim strComOld As String, arrComment, boAdd As Boolean
'Bei Fehler zu Fin springen
On Error GoTo Fin
'wenn die geaenderte Zelle im definierten Beriech C4:I5 liegt, dann
If Not Intersect(Target, Range("C4:I5")) Is Nothing Then
'Wenn es eine Zelle betrifft und was reingeschrieben wurde, dann
'Hinweis: es wird also kein Kommentar geschrieben wenn
'der Zellinhalt geloescht wird?
If Target.CountLarge = 1 And Trim(Target.Value <> "") Then
'Eventsteuerung aus
Application.EnableEvents = False
'Wenn noch kein Kommentar vorhanden ist, dann
If Target.Comment Is Nothing Then
'Kommentar hinzufuegen
Target.AddComment
'Aenderungsflag auf WAHR setzen
boAdd = True
'Wenn doch kein Kommentar vorhanden ist, dann
Else
'Kommentar schrittweise zerpfluecken.
'Am Anfang steht uebrigens immer eine Leerzeile
strComOld = Target.Comment.Text
arrComment = Split(strComOld, Chr(10))
arrComment = Split(arrComment(1), "/")
arrComment = Right(arrComment(1), Len(arrComment(1)) - 2)
'Wenn der Zellinhalt wirklich geandert wurde, dann
'Aenderungsflag auf WAHR setzen
If Target.Value <> arrComment Then boAdd = True
'Ende Wenn noch kein Kommentar vorhanden ist, dann
End If
'Wenn Aenderungsflag auf WAHR steht, dann
If boAdd = True Then
'Kommentar hinzufuegen und breite setzen
Target.Comment.Shape.TextFrame.AutoSize = True
Target.Comment.Text vbLf & Application.UserName & " " & Date & "/ " & Target.Value & strComOld
'Ende Wenn Aenderungsflag auf WAHR steht, dann
End If
'Ende Wenn es eine Zelle betrifft und was reingeschrieben wurde, dann
End If
'Ende wenn die geaenderte Zelle im definierten Beriech C4:I5 liegt, dann
End If
Fin:
Application.EnableEvents = True
If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & " " & Err.Description
End Sub
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)