Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Kommentarfeldanpassungen per Makro
#1
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.  


.xlsm   Testdatei-Kommentar.xlsm (Größe: 16,01 KB / Downloads: 14)

Besten Dank im Voraus
Matze
Antworten Top
#2
Moin!
11 Downloads (nicht von mir) und keine Antwort?
Dann dürfte es nicht an der Unfähigkeit der potentiellen Antworter liegen. Wink

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)
Antworten Top
#3
Moin Ralf,

meinst du das Problem lässt sich nicht lösen?


MfG
Matze
Antworten Top
#4
Hallo, :19:

deine Beispieldatei zurück: :21:

.xlsb   Kommentar_bei_Aenderung.xlsb (Größe: 17,31 KB / Downloads: 7)
________
Servus
Case
Antworten Top
#5
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
Antworten Top
#6
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? Exclamation

In der Beispieldatei wird nur bei Änderung im entsprechenden Bereich der Kommentar gesetzt. Nicht bei Klick und nicht bei Doppelklick ohne Eingabe. :21:
________
Servus
Case
Antworten Top
#7
Hallöchen,

eventuell ist auch der Fall gemeint, dass man im Eingabemodus nur ENTER drückt, ohne was zu aendern Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#8
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
Antworten Top
#9
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)
Antworten Top
#10
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)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste