Wert statt Formel

Per VBA Formel zu Wert

Dass Sie mit Bor­d­mit­teln ein durch eine Formel oder Funk­tion berech­netes Ergeb­nis in einen „ein­fachen” Wert umwan­deln kön­nen, wird Ihnen bekan­nt sein: Kopieren und Als Wert an gle­ich­er Stelle wieder ein­fü­gen. Und was Sie „zu Fuß” machen kön­nen, das lässt sich natür­lich auch per Makro/VBA erledi­gen. Der ein­fach­ste Weg wäre hier, den Vor­gang mit dem Makrorecorder aufzuze­ich­nen und bei der Gele­gen­heit vielle­icht gle­ich eine Tas­tenkom­bi­na­tion, einen Short­cut zuzuweisen.

Nun ist es eine alt­bekan­nte Weisheit, dass der aufgeze­ich­nete Code sel­ten opti­mal ist. Und auch nicht immer unbe­d­ingt über­sichtlich. Da ist es manch­mal vorteil­hafter, selb­st einige Zeilen Code zu schreiben oder sich ein­er vorge­fer­tigten Lösung zu bedi­enen. Hier ein­mal in Kurz­form zwei Lösun­gen, die Sie so ein­set­zen kön­nen. Die erste ist für die aktuelle Zelle gedacht. Auch wenn mehrere Zellen markiert sind, wird nur die aktuelle Zelle umge­wan­delt:

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 Val­ue geht, weil es in diesem Fall die Default-Eigen­schaft ist. Aber sich­er ist sich­er, und so funk­tion­iert es auch noch in 10 Jahren, selb­st wenn Microsoft sich wieder ein­mal dieses oder jenes ein­fall­en lässt …

Die zweite Möglichkeit wäre, dass in einem markierten Bere­ich alle Zellen so „behan­delt” wer­den 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öcht­en:

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

Selb­stre­dend lässt sich das auch als Add-In spe­ich­ern und/oder mit einem Short­cut starten. Die Tas­tenkom­bi­na­tion kön­nen Sie übri­gens auch später nachrüsten, siehe hier.

[NachOben­Let­zte Verweis=„Codeschnipsel: Wert statt Formel (VBA)”]
Dieser Beitrag wurde unter Code-Schnipsel, Tabelle und Zelle, Tipps und Tricks, Verschiedenes abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.