Clever-Excel-Forum

Normale Version: VBA Sprachproblematik in Makros
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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
Hallo Marc,

VBA-Makros sind doch immer in englischer Sprache programmiert. Oder habe ich da etwas falsch verstanden?
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
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