Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Sprachproblematik in Makros
#1
Hallo zusammen

Mein Kollege hat als Muttersprache Englisch, also wählt er als Sprache in seinem Excel Englisch aus und programmiert in Excel-Dokumenten Makros mit englischen Schlüsselwörtern.
Ich habe in meinem Excel die deutsche Sprache ausgewählt. Die Excel-Version ist für uns beide die gleiche.

Nun zum Problem: In einem Makro programmiert er eine bedingte Formatierung und das Resultat in den Regeln der bedingten Formatierung sieht für ihn dann in seinem Excel in Englisch wie folgt aus:
= "HP" = INDIRECT("Projekt_Cockpit_FUB[@Type]")

Er speichert nun die Datei und ich öffne sie mit meinem Excel mit deutscher Sprache. Die Regel in der bedingten Formatierung sieht dann für mich wie folgt aus:
= "HP" = INDIREKT("Projekt_Cockpit_FUB[@Type]")

INDIRECT wird für mich also in INDIREKT übersetzt und die bedingte Formatierung funktioniert bei mir im Excel in Deutsch perfekt.

Über eine Tastenkombination kann ich nun ein vom Kollegen im Excel mit englischer Sprache programmiertes Makro in meinem Excel mit Sprache Deutsch ausführen. Das Makro löscht unter anderem alle
bedingten Formatierungen und erstellt diese neu. Im Makro hat er das Schlüsselwort 'INDIRECT' verwendet und die Regel in der bedingten Formatierung sieht dann in meinem Excel mit Deutscher Sprache wie folgt aus:
= "HP" = INDIRECT("Projekt_Cockpit_FUB[@Type]")

Sein programmiertes 'INDIRECT' wird in diesem Fall nicht übersetzt und somit funktioniert die bedingte Formatierung dann in meinem Excel mit ausgewählter Sprache Deutsch nicht mehr, weil INDIRECT in Deutsch kein Schlüsselwert ist.

Was muss der Kollege in seinem Makro tun, damit die bedingte Formatierung in seinem Makro unabhängig davon funktioniert, mit welcher angewählten Sprache im Excel ein Nutzer das Makro laufen lässt?

Liebe Grüsse
Marc
Antworten Top
#2
Hallo Marc,

VBA-Makros sind doch immer in englischer Sprache programmiert. Oder habe ich da etwas falsch verstanden?
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#3
Moin,

das Problem ist, dass die Formeln in der bedingten Formatierung immer in der Landessprache angegeben werden müssen (da wurde meines Wissens nach nie zwischen Formulalocal und Formula unterschieden). Die einzige allgemeingültige Möglichkeit, das Problem zu beheben wäre es, die benötigten Formel temporär in eine Zelle einzutragen und dann die .FormulaLocal Eigenschaft in die Formatcondition zu übernehmen.

Viele Grüße
derHöpp
Antworten Top
#4
z.B. ?

Code:
Sub M_snb()
  Cells(1, 100) = "HP"" = INDIRECT(""Projekt_Cockpit_FUB[@Type]"")"
  Cells(1).FormatConditions.Add(2, , Cells(1, 100).FormulaLocal).Interior.Color = vbRed
  Cells(1, 100).Clear
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • derHoepp
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste