zurück zum Artikel

Excel-Kommentare automatisch positionieren

Praxis & Tipps | Tipps & Tricks

Ich habe von meiner Vorgängerin eine komplexe Excel-Tabelle mit zahlreichen Kommentaren geerbt. Diese haben die Kollegin wohl beim Lesen gestört, weshalb sie sie in alle Himmelsrichtungen verschoben hat. Da sich die Kommentarlinien nun heillos überschneiden, lassen sie sich kaum noch einer Zelle zuordnen. Gibt es eine Möglichkeit, alle Kommentare an ihre ursprüngliche Position zurückzusetzen beziehungsweise neben die verknüpfte Zelle zu platzieren?

Ich habe von meiner Vorgängerin eine komplexe Excel-Tabelle mit zahlreichen Kommentaren geerbt. Diese haben die Kollegin wohl beim Lesen gestört, weshalb sie sie in alle Himmelsrichtungen verschoben hat. Da sich die Kommentarlinien nun heillos überschneiden, lassen sie sich kaum noch einer Zelle zuordnen. Gibt es eine Möglichkeit, alle Kommentare an ihre ursprüngliche Position zurückzusetzen beziehungsweise neben die verknüpfte Zelle zu platzieren?

Video: Excel-Kommentare automatisch positionieren

Eine interne Funktion zum Zurücksetzen aller Kommentare auf ihre ursprüngliche Position ist uns nicht bekannt. Sie können das Problem aber mit dem nebenstehend abgedruckten VBA-Makro aus der Welt schaffen. Es greift der Reihe nach auf alle Kommentare (Comment-Objekte) des aktuellen Arbeitsblatts zu und positioniert sie jeweils auf der gleichen Höhe wie die verknüpfte Zelle, auf die die Parent-Eigenschaft des Comment-Objekts verweist. Die neue vertikale Position des Kommentars entspricht der vertikalen Position der Zelle plus einem festen Versatz nach rechts, der der doppelten Zellbreite entspricht.

Sub ResetComments()
    Dim objComment As Comment

    ' Alle Kommentare des aktuellen Arbeitsblatts
    ' durchlaufen
    For Each objComment In ActiveSheet.Comments
        With objComment
            ' Top-Wert des Kommentars auf Top-Wert
            ' der verknüpften Zelle setzen
            .Shape.Top = .Parent.Top
            ' Left-Wert des Kommentars auf Left-Wert
            ' der verknüpften Zelle plus Zellbreite
            ' mal zwei setzen
            .Shape.Left = .Parent.Left + _
              (.Parent.Width * 2)
        End With
    Next
End Sub
Das VBA-Makro richtet alle Kommentare eines Excel-Arbeitsblatts an der Position der jeweils verknüpften Zelle aus.

Um das Makro in eine Arbeitsmappe zu integrieren, aktivieren Sie das Menüband-Register Ansicht und klicken auf Makros. Geben Sie den Makronamen ResetComments ein und wählen Erstellen. Ersetzen Sie den Inhalt des Editorfensters vollständig durch den Quelltext des abgedruckten Makros und speichern Sie die Arbeitsmappe. Über „Ansicht/Makros“ können Sie den Code anschließend aus jedem Arbeitsblatt der Arbeitsmappe heraus starten (Ralf Nebelo/db)


URL dieses Artikels:
http://www.heise.de/-2055961