Aktualisierung von Formeln

Hallo zusammen bei WeWeWa!

ich habe da mal eine Frage zu EXCEL, die allerdings Ihren Ursprung in VBA hat.

Wenn ich in eine Zelle eine Formel per VBA schreibe, wird zunächst ein Fehler „#Bezug!“ ausgegeben. Gehe ich einmal in die Zelle per F2 und verlasse diese, wird der erwartete Wert dargestellt. Die Formel ist also korrekt, wird aber nicht sofort ausgewertet.

per Application.CalculateFull ändert sich nichts. Auch F9 (neu berechnen) hat keinen Erfolg.

Was muss in den Code, damit die Zellen sofort berechnet werden?

mfg

Dirk.Pegasus

vielleicht schreibst Du erst mal den betreffenden vba code nieder…

Und was sieht anders aus, wenn Du ein Makro aufzeichnest und die Formel dann von Hand eingibst?

Hallo MunichFreak,

danke für die Anregungen:

vielleicht schreibst Du erst mal den betreffenden vba code
nieder…

activesheet.Range(.Cells(2, 2), .Cells(5, 2)).FormulaR1C1 = „=Data!RC(2)“

Und was sieht anders aus, wenn Du ein Makro aufzeichnest und
die Formel dann von Hand eingibst?

ActiveCell.FormulaR1C1 = „=Data!‚RC‘(2)“

Aha! Da stehen ja noch diese kleinen ’ mit drin, also flugs damit in den Code. Aber dann läuft der nicht mehr … Übrigens auch nicht das protokollierte Makro!

Blöd ist beim Vergleich halt auch, das SZ zund RC jeweils ersetzt werden müssen. So ein direktes Cut and Paste ist also nicht ganz möglich.

Hoffe das füllt meine Lücken.

mfg

Dirk.Pegasus

Hallo MunichFreak,

nun nochmals meinen Dank für den Tipp, es hat die Lösung gebracht. Das protokollierte Makro sieht so aus:

 Range("C10").Select
 ActiveCell.FormulaR1C1 = "=Data!'RC'(2)"
 Range("C10").Select
 Columns("C:C").ColumnWidth = 34.71
 Range("B3:smiley:3").Select
 ActiveCell.FormulaR1C1 = "=Data!'RC'(2)"
 Range("B3:smiley:3").Select
 ActiveCell.FormulaR1C1 = "=Data!'RC'(2)"
 Range("B3:smiley:3").Select
 ActiveCell.FormulaR1C1 = "=Data!RC[2]"

man beachte die Schreibweise in der letzten Zeile: Eckige Klammern! Dass man das in VBA auch anders machen muss? Naja, man lernt ja nie aus. Was ist vorher passiert: Im Sheet das Feld (wo ich die runden Klammern hatte) per F2 edititert und verlassen. Da dort die runden Klammern ok sind, wurde auch der Wert angezeigt. Is ja auch klar, aber halt nicht spontan nachvollziehbar.

mfg

Dirk.Pegasus

Hallo Dirk!

Da kann ich dir im Mom. nicht wirklich helfen.
Vielleicht funktioniert: Worksheets(1).EnableCalculation = True .

Gruß, Sebastian

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Sebastian,

hat sich erledigt. Der fehler lag darin, dass VBA bei der Eingabe von Formualr1c1 eckige Klammern und keine runden erwartet. Geht man kurz in die Zelle, akzeptiert diese die runden Klammern.

War also kein aktualisierungs Problem, sondern ein Formelfehler.

mfg

Dirk.Pegasus

Erledigt: eckige statt runde Klammern owT
.