Bob fragte, ob es möglich sei, eine Formel zu schreiben und die Antwort in einem Kommentar anstatt in einer Zelle zu erhalten. Die kurze Antwort lautet: Nein, mit einer Formel kann man das nicht machen. Sie können dies jedoch mit einem Makro tun. Das folgende Makro fügt beispielsweise den Inhalt von zwei Zellen (A1 und B1) hinzu und fügt das Ergebnis dann in einen Kommentar ein, der an Zelle C1 angehängt ist:

Sub MakeComment()

With Worksheets(1).Range("C1").AddComment         .Visible = True         .Text "Total of cell A1 plus cell B1 is equal to " & _           ([A1].Value) + ([B1].Value)

End With End Sub

Wenn Sie das Makro lieber in einem Zellbereich ausführen möchten, ist ein anderer Ansatz erforderlich. Das folgende Makro durchläuft alle Zellen einer Auswahl. Wenn die Zelle eine Formel enthält, fügt das Makro den Wert (das Ergebnis der Formel) in einen Kommentar ein, der an diese Zelle angehängt ist.

Sub ValueToComment()

Dim rCell As Range     For Each rCell In Selection         With rCell             If .HasFormula Then                 On Error Resume Next                 .Comment.Delete                 On Error GoTo 0                 .AddComment                 .Comment.Text Text:=CStr(rCell.Value)

End If         End With     Next     Set rCell = Nothing End Sub

Wenn beim Durchlaufen der Zellen in der Auswahl eine der Zellen eine Formel und einen vorhandenen Kommentar enthält, wird der Kommentar gelöscht und durch den neuen Kommentar ersetzt, der das Formelergebnis enthält.

Anschließend wird der Wert der Zelle sowie ein Kommentar mit derselben Nummer angezeigt. Anstelle von CStr können Sie auch die Format-Funktion verwenden, um den Wert beliebig anzuzeigen.

Sie können auch ein Makro erstellen, das einen Kommentar ändert, wenn Sie den Inhalt einer bestimmten Zelle aktualisieren. Nehmen wir zum Beispiel an, Sie wollten jedes Mal, wenn jemand eine Änderung in Zelle C11 vornimmt, das Ergebnis von allem, was sich in dieser Zelle befindet, in einen Kommentar einfügen, der an Zelle F15 angehängt ist. Das folgende Makro macht genau das:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim sResult As String

If Union(Target, Range("C11")).Address = Target.Address Then         Application.EnableEvents = False         Application.ScreenUpdating = False         sResult = Target.Value         Target.ClearContents

With Range("F15")

.ClearComments             .AddComment             .Comment.Text Text:=sResult         End With         Application.EnableEvents = True         Application.ScreenUpdating = True     End If End Sub

Wenn jemand eine Formel (oder einen Wert) in Zelle C11 eingibt, werden die Ergebnisse dieser Formel (oder der Wert selbst) in einen Kommentar eingefügt, der an Zelle F15 angehängt ist. Da dies ein ereignisgesteuertes Makro ist, muss es in das Codefenster des Arbeitsblatts eingegeben werden, auf dem es funktionieren soll.

Schließlich möchten Sie möglicherweise, dass Ihr Makro eine ganze Spalte überwacht. Das folgende Makro verwendet das Change-Ereignis eines Arbeitsblatts genau wie das vorherige Makro. Es wird jedoch nur aktiviert, wenn die Änderung in Spalte F vorgenommen wurde und nur, wenn eine einzelne Zelle in dieser Spalte geändert wurde.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Cells.Count > 1 Then Exit Sub     If Target.Column <> 6 Then Exit Sub

Dim x As String     Application.EnableEvents = False     If Target.HasFormula Then         x = Evaluate(Target.Formula)

Else         x = Target.Text     End If

Target.ClearComments     If Target.Text = "" Then         Application.EnableEvents = True         Exit Sub     End If

Target.AddComment x     Target = ""

Application.EnableEvents = True End Sub

Wenn der Benutzer eine einzelne Zelle in Spalte F ändert, erfasst das Makro das Ergebnis der Eingabe und fügt es in einen Kommentar ein, der an diese Zelle angehängt ist. Der Inhalt der Zelle wird dann gelöscht.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (13038) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: