Excel Formeln Übersetzen (Automatisch)?

Bild

Betrifft: Excel Formeln Übersetzen (Automatisch)?
von: Jenka
Geschrieben am: 27.10.2003 11:38:15

Hallo zusammen!
Habe ein Problem mit Übersetzen von Excel-Formeln (German <-> beliebige Sprache) per VBA.

Es existiert eine Funktion unter Excel: Range(...).Formula = XXX
Diese Funktion übersetzt Formeln in Aktuelle Sprache, aber immer nur eine Zeile! (keine Range Bereiche).

Ich dagegen arbeite mit Arrays/ Rangebereichen und da funktioniert die Funktion nicht mehr.
Kennt jemand von euch eine Alternative?

mfg
Jenka

Bild


Betrifft: AW: Excel Formeln Übersetzen (Automatisch)?
von: Hans W. Hofmann
Geschrieben am: 27.10.2003 12:37:08

Kann ich nicht folgen. Nach Handbuch,

Formula-Eigenschaft

Gibt die Formel des Objekts im A1-Bezugssystem entsprechend der Ländereinstellung für die Makrosprache zurück oder legt sie fest.

Und die Makrosprache ist Englisch und nicht änderbar!
Was willst Du eigentlich machen?

Gruß HW


Bild


Betrifft: AW: Excel Formeln Übersetzen (Automatisch)?
von: Jenka
Geschrieben am: 27.10.2003 12:53:30

Hi,
ich habe eine Vorlage, die Unterschiedliche Vormeln enhält.
Angezeigt werden die Formeln in entsprechenden Ländereinstellungen (z.b. Deutsch, Chinesisch, Englisch , usw...)

jetzt lese ich ganze Bereich mit formeln und Analysiere bzw. erweitere Daten/Formeln
(z.b. Früher: "=SUMME(A1:B1)" nach erweiterung "=SUMME(A1:B20) * SUMME(X1:Y2)")

Alle Daten(Array) wird wieder ins Sheet geschrieben.
zur zeit wird noch mit Deutschen Excel gearbeitet, doch im zukunft sollte es unabhängig von Excel-Sprache sein.

Problem mit "Formula()" ist, wenn ich ein rangebereich mit englischen formeln an sheet zuweise(Deutsche Excel) dann akzeptiert excel englische formeln nicht!
es geht nur zeilenweise mit dieser funktion.

Gruß Jenka


Bild


Betrifft: AW: Excel Formeln Übersetzen (Automatisch)?
von: Hans W. Hofmann
Geschrieben am: 27.10.2003 13:13:01

Also mal der Reihe nach, ich sehe immer noch nicht das Problem:
Wenn Du mit .Formula eine Formel abgreifst, dann wird die in Englisch, egal unter welcher Sprache die Eingabe erfolgte, ein/ausgegeben.
Greifst Du mit .FormulaLocal zu erhälst Du die in der loacal eingestellten Sprache.
Sprachunabhängigkeit erhälst Du automatisch über die englische Form .Formula.
Was musst Du denn analysieren?

Gruß HW


Bild


Betrifft: AW: Excel Formeln Übersetzen (Automatisch)?
von: Jenka
Geschrieben am: 27.10.2003 13:31:17

Hallo Hans,
wenn du kein Englisches Excel hast dan probiermal diese beispiel Code aus,
dan verstehst du es:

public

Sub test()
   Dim aData
   aData = Range("a1:b3").Formula
   aData(1, 1) = "=sum(a1:a20)"
   aData(1, 2) = "=sum(b1:b20)"
   Range("a1:b3").Formula = aData
End Sub


Mein excel akzeptiert die formeln nicht! (#NAME?)

Gruß Jenka


Bild


Betrifft: AW: Excel Formeln Übersetzen (Automatisch)?
von: Hans W. Hofmann
Geschrieben am: 27.10.2003 14:09:19

Naja, so wird das ja auch nix - bist Du sicher dass Du als VBA-Profi durchgehst ;-)...

Dein Problem hat nix mit Sprachabhängigkeiten zu tun!

aData = Range("a1:b3").Formula
Definiert einen Variant aData(1 to 3, 1 to 2 ) der die englischen Formeltexte aus dem referenzierten Range enthält. Wozu das? Wieso liest Du den Bereich aus?

Range("a1:b3").Formula = aData
Sowas geht latürnich garnet, weil Du EINEM Range nur EINE Formel zuweisen kannst. Du kannst im Tabellenblatt auch keine 2 zwei (unterschiedlichen) Formeln gleichzeitig eingeben - kann auch net gehen, weil Abhängigkeiten zwischen den Formeln bestehten, die Hierachisch aufgelöst werden müssen und den Berechnungsbaum bilden.

Was Du letzt endlich geschieben hast ist

Range("A1").Formula = "=sum(a1:a20)"
Range("B1").Formula = "=sum(b1:b20)"

was dann einen Zirkelbezug ergeben würde, der noch entfernt werden müsste.
Was wollest Du denn mit obiger Konstruktion eigentlich erreichen?

Gruß HW


Bild


Betrifft: AW: Excel Formeln Übersetzen (Automatisch)?
von: Jenka
Geschrieben am: 27.10.2003 14:32:31

Hi!
>>aData = Range("a1:b3").Formula
>>Definiert einen Variant aData(1 to 3, 1 to 2 ) der die englischen Formeltexte aus dem referenzierten Range enthält. Wozu das? Wieso liest Du den Bereich aus?

Englische Formeltexte sind Standart. Wie gesagt die formeln werden danach verändert (bezüge werden erweitert!)

>>Range("a1:b3").Formula = aData
>>Sowas geht latürnich garnet, weil Du EINEM Range nur EINE Formel zuweisen kannst. Du kannst im Tabellenblatt auch keine 2 zwei (unterschiedlichen) Formeln gleichzeitig eingeben - kann auch net gehen, weil Abhängigkeiten zwischen den Formeln bestehten, die Hierachisch aufgelöst werden müssen und den Berechnungsbaum bilden.

Das funktioniert wunderbar (nur nicht sprachunabhängig), und das benutze ich schon seit jahren. Das Bringt for allem Performance!

>>Was Du letzt endlich geschieben hast ist
>>Range("A1").Formula = "=sum(a1:a20)"
>>Range("B1").Formula = "=sum(b1:b20)"

Genau! Nur im dem Fall muss ich zwei mal (oder noch mehr) hintereinander auf Excel-Sheet zugreifen und im meinem beispiel nur zum lesen und wieder zum schreiben (2 mal!)


Gruß
Jenka


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Excel Formeln Übersetzen (Automatisch)?"