Kommentare einrichten
#11
(05.08.2025, 13:01)wi.kr schrieb: @ Ralf: Ich benutze Office 2016 Pro - geht das mit dem Umwandeln in Notizen da auch und wenn ja, wie macht man das?

...sicher geht das... Bsp.:
PHP-Code:
Option Explicit

Type Kommands
    Autor 
As String
    Inhalt 
As String
    zelle 
As String
End Type

Sub Ersetzen
()
Dim kom As CommentThreaded
Dim i 
As Integer
Dim arrKom
() As Kommands

With ActiveSheet    
    
For Each kom In .CommentsThreaded
    ReDim Preserve arrKom
(i)
    arrKom(i).zelle kom.Parent.Address
     arrKom
(i).Inhalt kom.Text
    arrKom
(i).Autor kom.Author.Name
     
      i 
1
Next

    
.Cells.ClearComments
    
For 0 To UBound(arrKom())

    With .Range(arrKom(i).zelle)
        .AddComment
        
.Comment.Text Text:=Replace(arrKom(i).InhaltarrKom(i).Autor ":" Chr(10), "")
    End With

Next i


End With

End Sub 

Probier es aber sicherheitshalber erstmal mit einer Kopie der Datei!
Das stellt aber nur sicher, dass der Name des aktuellen Users entfernt wird. Sollten andere darauf geantworet haben, bleiben die drin stehen...
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#12
Hi

das folgende Makro erstellt bei einer Zelle ohne Notiz eine neue leere Notiz ohne Inhalt und öffnet dann diese auch gleich für die Eingabe:
Code:
Sub Notiz_einfügen_Blank()
If Intersect(ActiveCell, Cells.SpecialCells(xlCellTypeComments)) Is Nothing Then ActiveCell.AddComment
SendKeys "+{F2}"
End Sub

das Sendkeys simuliert die Tastenkombination zum öffnen der Notiz (Shift+F2)

um das Makro zu starten, musst du es entweder über das Menü aufrufen (Ansicht - Makros - Makros anzeigen, oder Entwicklertools - Code - Makro) oder du weist es einer Tastenkombination zu, dh in diesem Menü klickst du dann auf OPTIONEN, hier kannst du eine Taste eingeben, welche in Kombination mit STRG dann dieses Makro startet.

du muss den Code in ein allgemeines Modul (Modul1) einfügen.

noch ein Hinweis: das Tabellenblatt muss mindestens eine Notiz enthalten, bevor du diesen Code startet.


kommst du damit klar?

Gruß Daniel
Antworten Top
#13
Hallo,

um SendKeys zu vermeiden, könnte man evtl. auch folgenden Code verwenden:
Code:
...
set objComment = ActiveCell.AddComment
objComment.Shape.visible = true
...
Antworten Top
#14
Zunächst einmal vielen Dank für die vielfältigen Hilfen, die mir da angeboten werden. Ich finde das super, wie Ihr Euch engagiert!
Nun bin ich mit meinen über 81 Jahren für all das Programmieren nicht immer ganz mitgekommen. Ich hatte ja das Makro für das Formatieren meiner Kommentare gepostet. Was muss wo eingefügt werden, damit alle 
a) alten Kommentare berichtigt werden
b) alle neuen Kommentare bei Aufruf mit der rechten Maustaste blanco und in Standardschrift angelegt werden?
Viele Grüße
Karl
Antworten Top
#15
Hi

ein Makro, dass dir alle alten Kommentare korrigiert, die noch in der Originalform vorliegen (Benutzername Fett in erster Zeile)
könnte so aussehen.
es bearbeitet alle Kommentare in der aktiven Datei, auch über mehrere Blätter.
der Name des angemeldeten Users wird entfernt, sowie die Fettschrift:
Code:
Sub KommentareFormatieren()
    Dim sh As Worksheet
    Dim com As Comment
    Dim strTxt As String
    Dim Pos As Long
   
    For Each sh In ActiveWorkbook.Worksheets
        If sh.Comments.Count > 0 Then
            For Each com In sh.Comments
               
                strTxt = com.Text
                If strTxt Like Application.UserName & "*" Then
                    strTxt = Mid(strTxt, Len(Application.UserName) + 3)
                    com.Text Text:=strTxt
                End If
                com.Shape.TextFrame.AutoSize = True
                com.Shape.TextFrame.Characters.Font.Bold = False
               
            Next
        End If
    Next
End Sub

zu deiner zweiten Frage:

den Namen, der beim Erstellen des Kommentars automatisch eingefügt wird, findest du unter 
DATEI - OPTIONEN - ALLGEMEIN  - Microsoft Office-Kopie personalisieren - Benutzername

hier kannst du was anderes Eintragen und dann ggf den Haken "immer diese Werte verwenden" aktivieren, allerdings glaube ich nicht, dass er hier "keine Eingabe" erlaubt, sondern bei leer wird er den Namen nehmen, der bei Office hinterlegt ist.

ich weiß nicht ob du da rumfummeln willst, oder ob du dir nicht lieber  ein Makro mit der befehlszeile
ActiveCell.AddComment
erstellst und dieses Makro dann ausführst.

Gruß Daniel
Antworten Top
#16
Hallo Daniel,
das Makro habe ich jetzt über eine Kopie laufen lassen und die Fettschrift ist verschwunden. Auch bei neuen Kommentaren ist die Schrift jetzt normal. Vielen Dank schon mal dafür. Dieses Problem ist gelöst. 
Bei Problem 2 habe ich beim Benutzernamen nichts eingetragen. Die neuen Kommentare zeigen jetzt ein nahezu leeres Fenster. Es ist nach einem Leerschritt ein Doppelpunkt zu sehen. Der Cursor steht darunter. Wenn ich den Doppelpunkt durch einen Punkt ersetzen und de Cursor standardmäßig davor, ist mein zweites Problem auch gelöst, weil ich dann den Punkt immer am Ende des Kommentars stehen habe - praktischer ginge es nicht. Gibt es auch dafür einen Tipp?
Viele Grüße
Karl
Antworten Top
#17
@knobbi38, @slowboarder,

Ihr bezieht Euch noch auf die Kommentare, die vor Off2016 noch die Kommentare waren. Ab 2016 sind das Notizen. Die neuen Kommentare benötigen das CommentThreaded-Objekt, sonst wird das nix mit dem Ummodeln in eine Notiz.

@Karl,

den Code in ein neues Modul einfügen und starten. Gültig, je nachdem welches Du nimmst, für alle oder zumindest das jeweils aktuelle Blatt.

Eine Fett-Formatierung gibt es übrigens in Deinem Makro nicht. Lediglich in Slow's letztem... das heißt,
die Zeile:
PHP-Code:
com.Shape.TextFrame.Characters.Font.Bold true 
 müsstest Du in meiner letzten Schleife noch einfügen und anpassen. Also aus dem com ein .comment machen (den Punkt nicht vergessen)
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#18
Excel wird beim Erstellen einer Notiz über das Menü immer den Eingetragenen Benutzernamen + Doppelpunkt + Zeilenumbruch in Fett geschrieben an den Anfang stellen. Ich glaube nicht, dass man das irgenwie abschalten kann.
das einzige, was mir einfällt wäre, die Notizen mit dem Makro zu erstellen.
Ja, willst du nicht, ich hab aber keine andere Lösung für dich.
ja du bist 81. Aber das mit dem anderen Makro hast du auch hinbekommen, warum solltest du dann beim zweiten Makro scheitern?
Gruß Daniel
Antworten Top
#19
...nimm diesen Code, der lässt die normalesn Kopmmentare in Ruhe:


PHP-Code:
Option Explicit

Type Kommands
    Autor 
As String
    Inhalt 
As String
    zelle 
As String
End Type

Sub Ersetzen
()
Dim kom As CommentThreaded
Dim i 
As Integer
Dim k 
As Kommands


With ActiveSheet
    
    
For Each kom In .CommentsThreaded
        k
.Autor kom.Author.Name
        k
.zelle kom.Parent.Address
        k
.Inhalt kom.Text
        kom
.Delete
    
        With 
.Range(k.zelle)
            .AddComment
            
.Comment.Text Text:=Replace(k.Inhaltk.Autor ":" Chr(10), "")
            .Comment.Shape.TextFrame.Characters.Font.Bold True
        End With
          i 
1
    Next

End With

End Sub 
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#20
Guten Morgen und erneut vielen Dank.
Bei dem neuen Code erhalte ich die Fehlermeldung "Option Explicit" sei unzulässig. 
Ich neige jetzt fast dazu, die gegenwärtige Anzeige eines noch leeren Kommentarfelds (Leerschritt, Doppelpunkt und Zeilenumbruch) so zu belassen und beim Eintragen einfach den Cursor nach oben zu schieben und dann direkt zu schreiben.
Ich bin aber doch etwas verwundert, dass Excel dem User die Grundgestaltung der Kommentare vorschreibt, ohne die Möglichkeit zu eröffnen, die Vorgaben individuell zu gestalten. Ich müsste also händig jeden Kommentar korrigieren, damit er das von mir gewünschte Erscheinungsbild hat.
In meinem Office 2016 Pro gibt es den Begriff der Notiz nicht, sondern nur Kommentare, so dass mir eine Umwandlung auch wohl nichts nützen würde. 
Viele Grüße
Karl
Antworten Top


Gehe zu:


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