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
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…
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
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
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.