VBA Formula

Servus,

ich versuche, über VBA die Formel eines Feldes zu setzen. Das geht auch ganz gut über

CumulatedCell.Formula = "=SUMME(L6:L11)"

CumuluatedCell ist ein Range über eine Zelle.

Die Formel steht auch drin, aber sie wird nicht korrekt ausgeführt. Der Wert der Zelle wird mit

#NAME?

angegeben. Erst, wenn ich im Zelleditor manuell den grünen Haken klicke, wird das Feld korrekt berechnet.

Wie kannich das den per Code anschubsen?

/dirk

Hallo,

ich versuche, über VBA die Formel eines Feldes zu setzen. Das
geht auch ganz gut über

CumulatedCell.Formula = „=SUMME(L6:L11)“

Ganz doofe Frage: Ist das Teil eines Subs oder einer Function?

Grüße,

Anwar

Ganz doofe Frage: Ist das Teil eines Subs oder einer Function?

Ds ist Teil eines Subs. Aber wieso sollte das einen Einfluss auf die Funktionalität haben?

/dirk

Etwas mehr Info
Dis Sub, die ich geschreiben habe, wird im Change Event des Worksheets aufgerufen.

Hallo,

Dis Sub, die ich geschreiben habe, wird im Change Event des
Worksheets aufgerufen.

Da blicke ich jetzt nicht mehr ganz durch…
Wenn das ganze ein Sub mit On change ist, sollte die Zielzelle doch leer sein, wie kann da denn #NAME? drinstehen? Vielleicht schickst Du mir das ganze mal zu? Oder sagst was in der Zelle drinsteht, in der #Name? erscheint.

Grüße,

Anwar

Weitere Aufklärung

Hallo,

Dis Sub, die ich geschreiben habe, wird im Change Event des
Worksheets aufgerufen.

Da blicke ich jetzt nicht mehr ganz durch…
Wenn das ganze ein Sub mit On change ist, sollte die Zielzelle
doch leer sein, wie kann da denn #NAME? drinstehen? Vielleicht
schickst Du mir das ganze mal zu? Oder sagst was in der Zelle
drinsteht, in der #Name? erscheint.

In der Zelle, in der #NAME? steht, ist die Formel, die ich über VBA gesetzt habe.

Im Change Event habe ich die Änderung einer anderen Zelle gefiltert und reagiere auf die Änderung eienr bestimmten Zelle. Wenn sich deren Wert ändert. soll halt die Formel für eine andere Zelle gesetzt werden.

Beispiel:

Zelle A wird geändert

Der Inhalt der Zelle B wird auf die Formel gesetzt.

In Zelle B steht die Formel auch drin, aber im Worksheet wird halt nur #NAME? angezeigt. Erst, wenn ich im Zelleneditor neben der Formel den grünen Haken anklicke, wird die Formel korrekt ausgewertet.

/dirk

Hallo Dirk,

Beispiel:

Zelle A wird geändert

Der Inhalt der Zelle B wird auf die Formel gesetzt.

In Zelle B steht die Formel auch drin, aber im Worksheet wird
halt nur #NAME? angezeigt. Erst, wenn ich im Zelleneditor
neben der Formel den grünen Haken anklicke, wird die Formel
korrekt ausgewertet.

Ahja, jetzt hab ich’s kapiert. Hat etwas gedauert, sorry… aber wer kommt auch schon darauf die Formel in einer Zelle zu ändern? IMHO solltest Du da lieber eine Function mit Select Case draus basteln…
Egal, setz doch einfach mal ein „Calculate“ an das Ende des Subs, das sollte wohl helfen, oder nicht?

Grüße,

Anwar

Calcuate hülft nüx

Ahja, jetzt hab ich’s kapiert. Hat etwas gedauert, sorry…

Kein Problem.

aber wer kommt auch schon darauf die Formel in einer Zelle zu
ändern?

Ich :wink:

IMHO solltest Du da lieber eine Function mit Select
Case draus basteln…

Ich habe es halt über ein If gefiltert, um nicht auf alle Changes zu reagieren.

Egal, setz doch einfach mal ein „Calculate“ an das Ende des
Subs, das sollte wohl helfen, oder nicht?

Hatte ich auch schon gedacht, aber es hat nichts bewirkt.
/dirk

das üs aba komisch
Hallo nochmal,

Ich habe es halt über ein If gefiltert, um nicht auf alle
Changes zu reagieren.

Und was spricht dagegen es über eine function zu regeln?

Grüße,

Anwar

Antwort gefunden!!!
Und nochmal hallo,

Benutz mal statt „Summe“ die englische Funktion „Sum“. Dann klappt’s.
Offensichtlich muss Excel die deutsche Summe erstmal intern zur „Sum“ umarbeiten.

Grüße,

Anwar

1 „Gefällt mir“

Das wars

Und nochmal hallo,

Benutz mal statt „Summe“ die englische Funktion „Sum“. Dann
klappt’s.
Offensichtlich muss Excel die deutsche Summe erstmal intern
zur „Sum“ umarbeiten.

Tatsächlich.

Danke! Sternchen!

/dirk

Hallo Dirk,
vermutlich liegt das Problem in der gemischten Verwendung englischer (in VBA) und deutscher Bezeichnungen.

Eine Lösung, „SUM“ statt „SUMME“ zu verwenden, kam schon hier im Forum.

Eine andere Lösung ist, mit „FormulaLocal“ statt „Formula“ zu arbeiten. Dann verwendet Excel-VBA die lokalen (deutschen) Excel-Bezeichnungen. Diese Lösung erspart uns das Nachschlagen der englischen Funktionsnamen.

Grüße aus Kamp-Lintfort
Erich Gier

Halo Erich,

das mit der Englisch-Deutsch-Mischung ist mir ja eh nicht so geheuer :wink:
Das mit der SUM gefällt mir ganz gut. Aber der Vollständigkeit halber: Das mit FormulaLocal geht auch.

/dirk

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