Registriert seit: 13.04.2014
Version(en): 365
Hallo, die englische Übersetzung ist ja auch falsch. Mit ActiveCell arbeiten ist auch gefährlich. Für B1 würde der Code so lauten: Code: ActiveCell.FormulaR1C1 = "=LEN(LOOKUP(9^9,--LEFT(9&RC[-1],COLUMN(R[] ) ) ) )-1"
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Sotaros,
da ist nicht nur die Länge falsch, sondern auch die Semikola.... Schaue mal genau in meine codezeile und vergleiche die mit Deiner.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 11.08.2014
Version(en): 2013
29.10.2014, 16:26
(Dieser Beitrag wurde zuletzt bearbeitet: 29.10.2014, 16:27 von sotaros.)
Hallo Andre, dank Deiner geduldige Hilfe weiß ich nun was falsch war. Da das gesamte Thema für mich sehr wichtig ist noch eine letzte Frage an Dich: Code: 'Englische Version funktioniert: Debug.Print Application.Evaluate("LEN(LOOKUP(9^9,--LEFT(9&A1,COLUMN(1:1 ) ) ) )-1") 'Deutsch so gehts nicht: Debug.Print Application.Evaluate("LÄNGE(VERWEIS(9^9;--LINKS(9&A1;SPALTE(1:1 ) ) ) )-1")
Muss ich die Formel immer ins Englische übersetzen um mit Evaluation arbeiten zu können oder gibt es noch einen Trick, dass auch eine Formel auf Deutsch verwertet wird?
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo sotaros,
geht leider nur im englischen. Ich könnte mir aber vorstellen, das man die Übersetzung mit einer Funktionsübersicht automatisieren kann.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 11.10.2014
Version(en): 12/2007&14/2010
Nichts ist leichter, als eine lokale Formel komplett in US-Original-Notation darzustellen, Sotaros; trage sie auf Deutsch in eine passende Zelle des Blattes ein und frage mit einer UDF die Originalfassung ab: Code: Function GetFormula(Bezug As Range, Optional Form As Integer) Select Case Form Case 0: GetFormula = Bezug.Formula Case 1: GetFormula = Bezug.FormulaLocal Case 2: GetFormula = Bezug.FormulaR1C1 Case 3: GetFormula = Bezug.FormulaR1C1Local Case 4: GetFormula = "{" & Bezug.FormulaArray & "}" 'liegt nur im Original vor! Case Else: GetFormula = CVErr(xlErrNA) End Select End Function
Das gilt auch für benannte Formeln (allerdings werden relative Adressen dann an die UDF-Standortzelle angepasst, was ausgeglichen werden muss), wobei die hier nicht berücksichtigt sind. Für Formeln in Gültigkeitsbedingungen und in Regeln des Bedingten Formats, die beide offiziell nur lokal vorliegen, ist es etwas (evaluierbar) komplizierter… :21: Gruß, Castor
Registriert seit: 25.09.2014
Version(en): 2013
Hallo liebe VBA Experten,
die Übersetzungsidee von Castor könnte ich super für meine Büroarbeit gebrauchen. Leider habe ich noch nicht einmal eine Ahnung davon was eine UDF-Standortzelle ist. Wer kann mir den angegebenen Code von Castor fertigschreiben. Ich würdet mir einen großen Gefallen tun.
Last but not least: Geht es auch umgegehrt? Eine Formel aus dem Englischen ins Deutsche übersetzen? Auch daran bin ich natürlich brennend interessiert.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
30.10.2014, 13:30
(Dieser Beitrag wurde zuletzt bearbeitet: 30.10.2014, 13:30 von schauan.)
Hallo, der code von castor sollte fertig sein. UDF = UserDefinierteFunktion. Relative Adressen werden in Bezug auf die Adresse angegeben, in der die UDF aufgerufen wird. Das Tool ist ja kein Übersetzungstool, sondern gibt eine in einer Zelle vorhandene Funktion in den verschiedenen "Excel-Formaten" aus. Wenn Du im deutschen Excel eine Formel in Englisch in die Zelle bekommst, sollte es also gehen. Ich schaff das jedoch nicht Wenn Du aber im englischen Excel was hast und das im deutschen öffnest, dann bekommst Du die Formeln automatisch übersetzt. Siehe dazu mein Hinweis von gestern, 16:14 Uhr. oder google nach Microsoft "Ändern der Standardsprache für Office-Programme"
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 11.10.2014
Version(en): 12/2007&14/2010
André hat ja schon „UDF“ übersetzt, deshalb nur noch soviel: 1. Die UDF-Standortzelle ist die Zelle, in der die UDF als Formel notiert wird. Steht nun also in A1 irgendeine lokal (hier deutsch) notierte Formel und man schreibt in B1 die Formel =GetFormula(A1) erhält man die Formel in A1 in US-Original-Notation (englisch). Mit Angabe des optionalen 2.Arguments als 1…4 erhält man dann die anderen Varianten. Dabei werden auch relative Adressen in der Formel in A1 original wiedergegeben. 2. Wollte man auch benannte Formeln, also Formeln, die nur im Namensmanager eingetragen und dort mit einem Namen versehen wurden, auf diese Weise darstellen, müsste die gezeigte UDF erst dementsprechend erweitert werden. Würde man dann diese erweiterte UDF genauso wie die gezeigte in einer Zellformel einsetzen, würde eine Besonderheit des Namenmanagements von Xl bzgl Verwendung von Namen in Formeln wirksam → relative Adressen werden an den Standort (Zelle) der den Namen verwendenden Formel angepasst. Das Gleiche passiert, wenn man das in Xl integrierte Tool zur Wiedergabe aller Namen und ihrer Inhalte benutzt. Das ist im normalen Namensgebrauch auch sehr sinnvoll und kann deshalb nicht geändert, nur berücksichtigt und ausgeglichen werden. Bei Formeln in der Gültigkeit ist das ebenso, nur ist (bei lokalem Xl) ihre Darstellung in US-Notation etwas komplizierter (es war bis Xl11 auch bei Formeln der Bedingten Formatierung der Fall, ab Xl12/2007 nicht mehr, da Anpassungen nur noch intern erfolgen). 3. Auch das hat André bereits erwähnt, das ist kein Übersetzungs-, nur ein Darstellungstool! Wenn man eine englischsprachige XlVariante verwendet, ist die lokale Formelform mit der Originalform identisch (das gilt höchstwahrscheinlich auch für eine französische XlVersion), man kann also so keine x-beliebige lokale Notationsform erhalten (die „Übersetzung“ ist also quasi eine Einbahnstraße!). Dafür würde dann tatsächlich ein Übersetzungsprogramm benötigt, dass auch die jeweilige lokale Standard-Zeichensetzung berücksichtigt (individuell vereinbarte Zeichen können idR keine Berücksichtigung finden!). Gruß, Castor
Registriert seit: 10.04.2014
Version(en): 2016 + 365
Hi Castor, (30.10.2014, 19:09)Castor schrieb: André hat ja schon „UDF“ übersetzt, deshalb nur noch soviel: Deine beiden Beiträge sind echt klasse. Willst Du die vielleicht in einen zusammenfassen und bei "Beispiele und Workshops" reinsetzen? Ich finde, das absolut würdig, das dort zu haben und dann später wieder einfacher zu finden.
Registriert seit: 11.10.2014
Version(en): 12/2007&14/2010
Eine Möglichkeit gibt's allerdings doch noch für den umgekehrten Weg, allerdings auch nur mit einer lokalen Xl-Variante. Aber das ergibt sich eigentlich schon aus dem Hauptthema dieses Threads: Wenn eine Formel in US-Notation vorliegt, trägt man sie mit VBA in .Formula (bzw .FormulaR1C1) einer Zelle ein und kann sie dann mit GetFormula(…;1) bzw GetFormula(…;3) in lokaler Form auslesen. Aber das hatte ich andersherum ja schon in meinem 1.Beitrag geschrieben. Castor
|