Wert statt Formel

Per VBA Formel zu Wert

Dass Sie mit Bordmitteln ein durch eine Formel oder Funktion berechnetes Ergebnis in einen „einfachen“ Wert umwandeln können, wird Ihnen bekannt sein: Kopieren und Als Wert an gleicher Stelle wieder einfügen. Und was Sie „zu Fuß“ machen können, das lässt sich natürlich auch per Makro/VBA erledigen. Der einfachste Weg wäre hier, den Vorgang mit dem Makrorecorder aufzuzeichnen und bei der Gelegenheit vielleicht gleich eine Tastenkombination, einen Shortcut zuzuweisen.

Nun ist es eine altbekannte Weisheit, dass der aufgezeichnete Code selten optimal ist. Und auch nicht immer unbedingt übersichtlich. Da ist es manchmal vorteilhafter, selbst einige Zeilen Code zu schreiben oder sich einer vorgefertigten Lösung zu bedienen. Hier einmal in Kurzform zwei Lösungen, die Sie so einsetzen können. Die erste ist für die aktuelle Zelle gedacht. Auch wenn mehrere Zellen markiert sind, wird nur die aktuelle Zelle umgewandelt:

Sub RngFormelZuWert()
   Dim c As Range
   For Each c In Selection
      c.Value = c.Value
   Next c
End Sub

Ja, ich weiß, dass es auch ohne das Wort Value geht, weil es in diesem Fall die Default-Eigenschaft ist. Aber sicher ist sicher, und so funktioniert es auch noch in 10 Jahren, selbst wenn Microsoft sich wieder einmal dieses oder jenes einfallen lässt …

Die zweite Möglichkeit wäre, dass in einem markierten Bereich alle Zellen so „behandelt“ werden sollen. Dann führt dieser Code zum Ziel:

Sub RngFormelZuWert()
   Dim c As Range
   For Each c In Selection
      c.Value = c.Value
   Next c
End Sub

Sie sehen, dass das kaum mehr Code ist als im ersten Beispiel.Und für alle, die es gerne kurz und knapp haben möchten:

Sub Sel2Val()
   Selection.Value = Selection.Value
End Sub

Selbstredend lässt sich das auch als Add-In speichern und/oder mit einem Shortcut starten. Die Tastenkombination können Sie übrigens auch später nachrüsten, siehe hier.

▲ nach oben …

Dieser Beitrag wurde unter Code-Schnipsel, Tabelle und Zelle, Tipps und Tricks, Verschiedenes abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.