Mit begrenztem Wissen über Computer, Software und 42

schreibt Andre

Excel Formeln per Makro (VBA) zuweisen

10.10.11 (Computer, Office, Tipps und Tricks)

In Excel Formeln per Makro zuweisen
(Cells(R, C) . Formula)

Nach langer Zeit, in der ich mich nicht mit Excel-Makros beschäftigt habe, stand ich vor dem Problem ein Makro zu schreiben, dass mehreren Zellen eine Formel zuweist. An sich ist dies auch mit rudimentären VBA-Kenntnissen kein großes Problem. Werte können einfach mit:

Cells(Zeile, Spalte).FormulaR1C1 = Formel

Oder

Cells(Zeile, Spalte).Formula = Formel

zugewiesen werden, wobei die Formel als String vorliegen und dieser String mit einem Gleichheitszeichen beginnen muss z.B:

Formel = “=SUM(RC[-11]: RC[-7])”

Excel Formeln werden als Text ausgegeben

Soweit so gut. Leider führte mein Makro (hier in einer alten Excel 97-Version) dazu, dass die Formel in den betreffenden Zellen als String ausgegeben, aber nicht berechnet wurde.

Nach langem Probieren und Studieren von Foren und Hilfstexten stolperte ich dann eher zufällig über des Problems Kern:

Die Zellen waren als Text formatiert (Format>Zellen>Registerkarte Zahlen>Option Text). Wenn hier eine andere Option z.B. Standard eingestellt wird, werden die Formeln wie gewünscht berechnet. Da soll nun einer drauf kommen, dass die Formatierung der Zellen solche Auswirkung hat.

Ach übrigens, wenn Sie in derart als Text formatierte Zellen Formeln per Hand eintippen, werden diese Formeln anders als bei der Zuweisung durch ein Makro dennoch berechnet.

Auch Excel 2010 gibt Formeln als Text aus

Ein kurzer Test mit Excel 2010 zeigt das gleiche Verhalten, wenn Zellen das Text-Format zugewiesen wurde. Aufgrund dieser Tatsache gehe ich davon aus, dass auch die anderen Excel-Versionen dieses Verhalten aufweisen und es sich somit um keinen Bug – wie ich es wieder ein mal voreilig dachte – sondern um ein mir nicht verständliches Feature von Excel handelt.

Suchbegriffe

  • excel vba formel in zelle schreiben
  • excel vba formel
  • excel vba formula
  • excel 2010 vba formel einfügen

Ein Kommentar