Ich habe mich eben mit meinem Handy auf die Waage gestellt und war total entsetzt. Wusstet ihr, dass ein Smartphone-Speicher so um die fünf Kilo wiegt?

Ich erstelle ein VBA-Projekt in Excel, das auf dem Mac und auf dem PC laufen soll. Da die Trennzeichen zwischen den Ordnern unterschiedlich sind („\“ auf PC, „/“ auf Mac), überprüfe ich, auf welchem System das Programm gerade läuft. Die Funktion

=INFO(„SYSTEM“)

liefert entweder „pcdoc“ oder „mac“. Prima!

Dann kann ich das doch in VBA verwenden. Ich werde eines Besseren belehrt:

Die Funktion INFO (oder Info) findet sich nicht in der Liste der Worksheetfunctions! Objekt unterstützt diese Eigenschaft oder Methode nicht. Lautet die Fehlermeldung. Abhilfe schafft der Befehl die Funktion in eine Zelle zu schreiben, den Wert auszulesen und die Formel wieder zu löschen. Beispielsweise so:

Dim xlBlatt As Worksheet
Dim strSystem As String

Set xlBlatt = ActiveSheet
xlBlatt.Range("A1").FormulaR1C1 = "=INFO(""SYSTEM"")"
strSystem = xlBlatt.Range("A1").Value
MsgBox strSystem
xlBlatt.Range("A1").ClearContents

i am not weird i am a limited edition

Es ist so schrecklich! Eigentlich ist das Problem einfach: eine Mitarbeiterin möchte wissen, ob beim Anwender Excel die deutsche oder englische Oberfläche eingeschaltet hat. Per VBA wäre dies kein Problem; allerdings wollen wir eine Lösung entwickeln, die auf Formeln basiert.

Wir beginnen:

=WENN(TEXT(DATUM(2018;1;1);“MMMM“)=“Januar“;“de“;“en“)

Wenn der erste Monat des Jahres „Januar“ heißt, bin ich Deutsch. Test: Excel wird auf englisch umgestellt:

Klar. die Ländereinstellung der Systemsteuerung ist noch immer „deutsch“ – deshalb ist der erste Monat Januar. Blöd zum Testen!

Zweiter Versuch:

=IF(ISERROR(TEXT(TODAY();“dddd“));“de“;“en“)

zeigt „en“ an. Bei der deutschen Oberfläche ebenso. Der Grund:

TEXT(HEUTE();“dddd“)

liefert „dddd“?!? Und eben keinen Fehler.

Noch ein Versuch:

=IF(ISERROR(INFO(„DIRECTORY“));“de“;“en“)

Auch hier weigert sich Excel hartnäckig „deutsch“ zu werden. Der Grund:

INFO(„DIRECTORY“)

funktioniert auch im Deutschen korrekt. Erst

=WENN(ISTFEHLER(INFO(„VERZEICHNIS“));“en“;“de“)

klappt. Das englische Excel kennt „VERZEICHNIS“ nicht. Zum Glück ist diese Funktion volatil, das heißt: wird beim Start von Excel neu berechnet.

Mehrsprachige Umgebungen sind die Hölle! Nicht nur in Excel … Und: das oben genannte Beispiel ist nur Spitze des Eisberges.