Wert statt Formel

Per VBA Formel zu Wert

Dass Sie mit Bor­d­mit­teln ein durch eine For­mel oder Funk­tion berech­netes Ergeb­nis in ei­nen „ein­fachen” Wert umwan­deln kön­nen, wird Ih­nen bekan­nt sein: Ko­pie­ren und Als Wert an gle­ich­er Stel­le wie­der ein­fü­gen. Und was Sie „zu Fuß” ma­chen kön­nen, das lässt sich natür­lich auch per Ma­kro/VBA erledi­gen. Der ein­fach­ste Weg wäre hier, den Vor­gang mit dem Ma­kro­re­cor­der aufzuze­ich­nen und bei der Gele­gen­heit vielle­icht gle­ich eine Tas­tenkom­bi­na­tion, ei­nen Short­cut zu­zu­wei­sen.

Nun ist es eine alt­bekan­nte Weis­heit, dass der aufgeze­ich­nete Code sel­ten opti­mal ist. Und auch nicht im­mer unbe­d­ingt über­sichtlich. Da ist es manch­mal vorteil­hafter, selb­st ei­ni­ge Zei­len Code zu schrei­ben 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 ers­te ist für die ak­tu­el­le Zel­le ge­dacht. Auch wenn meh­re­re Zel­len mar­kiert sind, wird nur die ak­tu­el­le Zel­le 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 die­sem Fall die Default-Eigen­schaft ist. Aber sich­er ist sich­er, und so funk­tion­iert es auch noch in 10 Jah­ren, selb­st wenn Mi­cro­soft sich wie­der ein­mal die­ses oder je­nes ein­fall­en lässt …

Die zwei­te Mög­lich­keit wäre, dass in ei­nem mar­kier­ten Bere­ich alle Zel­len so „behan­delt” wer­den sol­len. Dann führt die­ser Code zum Ziel:

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

Sie se­hen, dass das kaum mehr Code ist als im ers­ten Bei­spiel.Und für alle, die es ger­ne kurz und knapp ha­ben 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 ei­nem Short­cut star­ten. Die Tas­tenkom­bi­na­tion kön­nen Sie übri­gens auch spä­ter nach­rüs­ten, sie­he hier.

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