NamedRanges: wie richtig Formel zuweisen?
Verfasst: Di, 05.11.2013 10:54
Hallo liebe Gemeinde,
per Makro in Calc einen Zellbereich einen Namen zuzuordnen ist kein Problem. Wenn ich jedoch das gleiche mit einer Formel versuche, dann funktioniert das nicht so wie gewünscht.
Nehmen wir mal an, ich will diese Formel per Makro einen Namen zuordnen,
dann wird das dementsprechende Makro ohne Fehlermeldung auch ausgeführt, aber bei einer gegenkontrolle im "Namen festlegen" Fenster steht dann folgendes.
Und dadurch ist dann der dementsprechende Name für die Formel in einem Tabellenblatt nicht lauffähig, da es zur Fehlermeldung #NAME? kommt.
Was mir aber aufgefallen ist, wenn ich den Namen im "Namen festlegen" Fenster anklicke und kontrolliere und mit Abbrechen das Fenster verlasse, dann bleibt die Formel so wie nicht gewünscht stehen. Verlasse ich aber das Fenster nach dem anwählen des Namen mit OK, dann steht die Formel bei einer erneuten Kontrolle wie gewünscht da. Und dann funktioniert auch der Name im Tabellenblatt.
Das finde ich irgendwie sehr märkwürzik.
Jetzt komme ich zu einem weiteren Teil den ich nicht wirklich versteh.
Wenn ich die obige Formel NICHT in deutsch, sondern in englisch eintrage, also so
dann steht die Formel bei einer Kontrolle im "Namen festlegen" Fenster in der deutschen schreibweise, also genau so wie gewünscht.
Hier der Testcode.
Jetzt frage ich Euch
-> warum funktioniert die englische schreibweise, aber nicht die deutsche?
-> wie muss ich den Code ändern, damit auch die deutsche schreibweise funktioniert?
Ich habe keine Lust darauf den Namen jedesmal zu kontrollieren und mit OK zu bestätigen, da ich ja sonst gleich alles von Hand machen kann, also ohne Makro.
Freue mich auf eure Antworten, und bedanke mich schon mal für eure Bemühungen
.
Gruß
balu
per Makro in Calc einen Zellbereich einen Namen zuzuordnen ist kein Problem. Wenn ich jedoch das gleiche mit einer Formel versuche, dann funktioniert das nicht so wie gewünscht.
Nehmen wir mal an, ich will diese Formel per Makro einen Namen zuordnen,
Code: Alles auswählen
WENN(B1=1;2;SUMMENPRODUKT(1=D1:D2;1=E1:E2))
Code: Alles auswählen
wenn(B1=1;2;summenprodukt(1=D1:D2;1=E1:E2))
Was mir aber aufgefallen ist, wenn ich den Namen im "Namen festlegen" Fenster anklicke und kontrolliere und mit Abbrechen das Fenster verlasse, dann bleibt die Formel so wie nicht gewünscht stehen. Verlasse ich aber das Fenster nach dem anwählen des Namen mit OK, dann steht die Formel bei einer erneuten Kontrolle wie gewünscht da. Und dann funktioniert auch der Name im Tabellenblatt.
Das finde ich irgendwie sehr märkwürzik.
Jetzt komme ich zu einem weiteren Teil den ich nicht wirklich versteh.
Wenn ich die obige Formel NICHT in deutsch, sondern in englisch eintrage, also so
Code: Alles auswählen
IF(B1=1;2;SUMPRODUCT(1=D1:D2;1=E1:E2))
Hier der Testcode.
Code: Alles auswählen
sub NamenFuerFormel
Dim sFuerName as String
Dim sNameFormel as String
dim Bez_addr as new com.sun.star.table.CellAddress
sFuerName = "WENN(B1=1;2;SUMMENPRODUKT(1=D1:D2;1=E1:E2))"
'sFuerName = "IF(B1=1;2;SUMPRODUCT(1=D1:D2;1=E1:E2))"
'sFuerName = "$Tabelle1.$B$3:$D$6"
sNameFormel = "TestFormel"
with Bez_addr
.sheet = 0
.column = 0
.row = 0
end with
ThisComponent.NamedRanges.AddNewByName(sNameFormel, sFuerName, Bez_addr, 0)
'ThisComponent.calculate
end sub
-> warum funktioniert die englische schreibweise, aber nicht die deutsche?
-> wie muss ich den Code ändern, damit auch die deutsche schreibweise funktioniert?
Ich habe keine Lust darauf den Namen jedesmal zu kontrollieren und mit OK zu bestätigen, da ich ja sonst gleich alles von Hand machen kann, also ohne Makro.
Freue mich auf eure Antworten, und bedanke mich schon mal für eure Bemühungen

Gruß
balu