Platzieren von Formelergebnissen in einem Kommentar (Microsoft Excel)
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: