So, sind gleich 2 geworden m.MindestKomfort, ...
02.03.2015 02:00:51
Luc:-?
…Sibylle;
hoffe, du kennst dich mit EreignisProzeduren aus, sonst muss ich dir das Anlegen im bereits vorhandenen DokumentKlassenModul des betreffenden Blattes erst noch erklären. Das sollte man tatsächlich immer auf die vorgesehene Weise über die beiden DropDowns im Kopf des HptFensters des VBEditors tun, weil die ProzedurKöpfe bei manchen XlVersionen etwas abweichen können. Diese Köpfe dürfen dann auch nicht verändert wdn! Ich zeige das im Folgenden zwar komplett, aber leg' bitte die Prozeduren wie erwähnt an und kopiere die Prozedurkörper auf die Leerzeile zwischen Kopf und Fuß der entsprd Prozedur. Falls die Köpfe der LeerProzeduren mit den hier gezeigten übereinstimmen, kannst du aber auch gleich alles aufkopieren. Danach sollte es jedenfalls im Prinzip so aussehen wie nachfolgd gezeigt (die ModulVariable am Anfang nicht vergessen!):
Option Explicit
Dim adLastGenCmt As String
Rem Erzeugt leeren Kommentar per Rechtsklick (m.Nachfrage)
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If adLastGenCmt <> "" Then _
Me.Range(adLastGenCmt).Comment.Visible = False: adLastGenCmt = ""
If Target.Count > 1 Then Exit Sub
If Target.Comment Is Nothing Then _
Cancel = CBool(MsgBox("Leeren Kommentar erzeugen?", _
vbQuestion + vbYesNo, "Kommentar") - vbNo)
If Cancel Then Target.AddComment "": Target.Comment.Visible = _
True: adLastGenCmt = Target.Address(0, 0)
End Sub
Rem Korrigiert vorhandene Kommentare per Linksklick (ZellAuswahl)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim p As Long
If adLastGenCmt <> "" Then _
Me.Range(adLastGenCmt).Comment.Visible = False: adLastGenCmt = ""
If Target.Count > 1 Then Exit Sub
If Not Target.Comment Is Nothing Then
With Target.Comment
p = InStr(.Text, ":" & vbLf)
If CBool(p) Then .Shape.TextFrame.Characters(1, p + 1).Delete
End With
End If
End Sub
Gruß & schöMo, Luc :-?