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

4 comments

  • Heinz-Jürgen Ladberg

    Wäre das eine andere Möglichkeit?

    Sub WoBinIch()
    Dim strBetriebssystem As String
    strBetriebssystem = Environ(„OS“)
    MsgBox (strBetriebssystem)
    End Sub

    liefert bei WINDOWS 10 „Windows_NT“ zurück. Allerdings weiß ich nicht, wie das bei einem MAC aussieht…

    • Medardus

      danke für den Hinweis, Heinz-Jürgen,
      gute Idee. Aber leider unterstützt Excel VBA unter MAC den Befehl Environ nicht.
      Ebenso:
       SendKeys führt fast immer auf Mac zu einem Laufzeitfehler
       Das FileSystem Object existiert nicht im Mac
       MacID – Funktion führt unter Windows zu einem Laufzeitfehler
       Die MacScript – Funktion gleichermaßen
       Das Schlüsselwort CDecl führt auch unter Windows zu einem Laufzeitfehler
       LoadPicture exisitiert nicht auf dem Mac

      tja!
      Aber mich hat mehr erstaunt, dass Worksheetfunction nicht Info kennt!
      LG :: Rene Martin

  • andreas waechtler

    Hallo René,
    hast Du es schon mal mit
    Application.PathSeparator
    probiert? Funkioniert bei mir unter Excel 2016 / Win 10 – MAC kann ich leider nicht testen.
    Meinem Add-In (.xlam) habe ich Verweise auf die MS Office 16.0 Object Library hinzugefügt – weiß nicht ob es daran liegt dass ich diese Funktion habe…
    LG, andreas

    • Medardus

      Hi Andreas,

      danke für den Hinweis. Ich hatte Application.PathSeperator auch schon auf dem Schirm, aus irgend einem Grund habe ich es verworfen.
      Es funktioniert. Und: Witzigerweise auch Application.Evaluate(„=Info(„“System““)“)
      Ich werde mal einen Artikel dazu schreiben.

Schreibe einen Kommentar zu Heinz-Jürgen Ladberg Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht.