Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1448to1452
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro läuft nicht unter MS Office 16 für Mac

Makro läuft nicht unter MS Office 16 für Mac
02.10.2015 20:02:01
Michael
Guten Abend, ich habe vor einiger Zeit schon mal Hilfe zu einem Makro hier bekommen und bräuchte mal wieder welche. Und zwar habe ich ein Makro, welches unter Office 2013 wunderbar läuft. Nun würde ich das gerne ab und an auch auf meinem Macbook mit Office 2016 laufen lassen. Bisher erhalte ich immer die Meldung
"Informationen zur Lizensierung dieser Komponente wurden nicht gefunden. Sie verfügen nicht über eine geignete Lizenz, um dieses Funktionsmerkmal in der Entwurfsumgebung zu nutzen"
Ich weiss leider nicht was falsch, oder unzureichend ist, etc.
Und auch gleich noch eine zusätzliche Frage. Ich habe am PC und am notebook unterschiedliche Speicherorte. Ist es möglich den Code so zu verändern, dass automatisch abgefragt wird, welcher Ordner vorhanden ist um dann dort zu speichern? Also wenn ich am Pc sitze, oder am notebook soll im vorhandenen Ordner abgespeichert werden. Später syncronisiere ich die Ordner immer.
Ich hoffe ich habe mich einigermaßen klar ausgedrückt und bin dankbar um jeden Tipp.
Schönen Abend zusammen...
Dies ist der Code:

Sub Check_Folder_And_Save()
Dim myFSO As Object, f As Object
Dim SaveFolder As String, myFileName As String, myLW As String
Set myFSO = CreateObject("Scripting.FileSystemObject")
SaveFolder = "Mein Speicherordner"
ActiveSheet.Copy
myFileName = ActiveSheet.Name & ".xlsx"
myLW = Left(SaveFolder, 2)
ChDrive myLW
If myFSO.folderexists(SaveFolder) Then
ActiveWorkbook.SaveAs Filename:=SaveFolder & "\" & myFileName
MsgBox " Aktuelle Rechnung gespeichert in " & SaveFolder & ""
Else
MkDir SaveFolder
ActiveWorkbook.SaveAs Filename:=SaveFolder & "\" & myFileName
MsgBox "Neuer Ordner " & SaveFolder & " erstellt und aktuelle Rechnung darin gespeichert"
End If
End Sub

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Makro läuft nicht....
02.10.2015 20:54:45
mumpel
Hallo!
1. "Scripting" ist in Mac-OS nicht möglich/existent.
2. In Mac-OS werden Doppelpunkte als Pfadtrenner verwendet.
Gruß, René

AW: Makro läuft nicht....
02.10.2015 21:02:18
Michael
Hallo Rene´,
danke für die schnelle Antwort. Ich bin leider immer noch absoluter Anfänger in VBA. Könnte man den Code denn umbauen, damit er auf beiden Sytemen läuft? Wofür wird das scripting gebraucht?
Im Grunde soll nur das aktuelle Tabellenblatt unter seinem Dateinamen abgespeichert werden.
Danke und Gruß
Michael

Nachtrag
02.10.2015 20:56:08
mumpel
In Office 2016 für Mac-OS wurde VBA meines Wissens wieder abgeschafft, bzw. sehr stark eingeschränkt.

Anzeige
AW: Nachtrag
02.10.2015 21:04:37
Michael
Vorhanden ist es zumindest noch. Inwieweit der Funktionsumfang reduziert wurde, kann ich nihct wirklich beurteilen

AW: Makro läuft nicht unter MS Office 16 für Mac
02.10.2015 21:39:37
fcs
Hallo Michael,
um das Makro zweigleisig zu machen muss das Betriebssystem geprüft werden.
Den Speicherpfad kannst du über den Computernamen steuern oder evtl auch eine andere Environ-Variable.
Wie bereits von den anderen Helfern erwähnt: Das File-Schripting-System funktioniert nicht auf dem Mac.
Als Erstzt kannst du mit Dir arbeiten, aber auch diese Anweisung funktioniert auf dem Mac anders. Ich hab dann noch etwas auf den Mac zugeschnittenes gefunden, kann es aber mangels Mac nicht testen.
Nachfolgend dein Makro wie es auf beiden Betriebssystemen funktionieren sollte - Mit ? beim Mac.
Gruß
Franz
Sub Check_Folder_And_Save()
Dim myFSO As Object, f As Object
Dim SaveFolder As String, myFileName As String, myLW As String
Dim strComputerName As String
Dim strOS As String
On Error GoTo Fehler
strComputerName = VBA.Environ("Computername")
strOS = VBA.Environ("OS")                       'Betriebssystem
'Speicherpfad abhängig vom Computernamen
Select Case strComputerName
Case "Mein PC"          'anpassen!
SaveFolder = "Mein Speicherordner PC"
Case "Mein Notebook"    'anpassen
SaveFolder = "Mein Speicherordner Notebook"
Case Else
SaveFolder = "C:\Users\Public\Test"
End Select
'Betriebssystem prüfen
If InStr(strOS, "Windows") > 0 Then
'Windows.Betriebssystem
Set myFSO = CreateObject("Scripting.FileSystemObject")
ActiveSheet.Copy
myFileName = ActiveSheet.Name & ".xlsx"
myLW = Left(SaveFolder, 2)
ChDrive myLW
If myFSO.folderexists(SaveFolder) Then
ActiveWorkbook.SaveAs Filename:=SaveFolder & "\" & myFileName, FileFormat:=51
MsgBox " Aktuelle Rechnung gespeichert in " & SaveFolder & ""
Else
MkDir SaveFolder
ActiveWorkbook.SaveAs Filename:=SaveFolder & "\" & myFileName, FileFormat:=51
MsgBox "Neuer Ordner " & SaveFolder & " erstellt und aktuelle Rechnung darin  _
gespeichert"
End If
Set myFSO = Nothing
Else
'Mac Betriebssystem
ActiveSheet.Copy
myFileName = ActiveSheet.Name & ".xlsx"
myLW = Left(SaveFolder, 2)  'mac: ?
ChDrive myLW                'mac: ?
'Note: This macro uses the FileOrFolderExistsOnMac function.
If FileOrFolderExistsOnMac(SaveFolder) = True Then
ActiveWorkbook.SaveAs Filename:=SaveFolder & Application.PathSeparator _
& myFileName, FileFormat:=51
MsgBox " Aktuelle Rechnung gespeichert in " & SaveFolder & ""
Else
MkDir SaveFolder    'Bei mac ggf. anpassen
ActiveWorkbook.SaveAs Filename:=SaveFolder & Application.PathSeparator _
& myFileName, FileFormat:=51
MsgBox "Neuer Ordner " & SaveFolder & " erstellt und aktuelle Rechnung darin  _
gespeichert"
End If
End If
Fehler:
With Err
Select Case .Number
Case 0 'Alles ok
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description, _
vbOKOnly, "Fehler Makro: Check_Folder_And_Save"
End Select
End With
End Sub
Function FileOrFolderExistsOnMac(FileOrFolderstr As String) As Boolean
'Ron de Bruin : 26-June-2015
'Function to test whether a file or folder exist on a Mac in office 2011 and up
'Uses AppleScript to avoid the problem with long names in Office 2011,
'limit is max 32 characters including the extension in 2011.
Dim ScriptToCheckFileFolder As String
Dim TestStr As String
If Val(Application.Version) 

Anzeige
AW: Makro läuft nicht unter MS Office 16 für Mac
03.10.2015 09:59:08
Michael
Hallo Franz,
das ist ja unglaublich welche Mühe du dir gemacht hast. Vielen Dank!!!!! dafür. Ich werde nachher mal versuchen es einzubauen und für mich anzupassen. Ich melde mich dann nochmal. Schönen Samstag vorerst.
Besten Gruß Michael

AW: Makro läuft nicht unter MS Office 16 für Mac
03.10.2015 10:53:26
Michael
Hallo Franz,
grundsätzlich scheint es auf dem MacBook zu laufen, aber irgendwie hakt es noch mit dem Speicherpfad. Ich habe einiges ausprobiert, hänge aber immer noch daran. Hier mal der Auszug code, auf den es meiner Meinung nach ankommt. Ich weiß nicht wo der Fehler liegt.
'Speicherpfad abhängig vom Computernamen
Select Case strComputerName
Case "hp"
SaveFolder = "G:\Uli macht Licht\Rechnungen\Rechnungsausgang"
Case "michels MacBook Pro"
SaveFolder = "/Users/michel/UmL/Rechnungen/Rechnungsausgang"
Case Else
SaveFolder = "C:\Users\Public\Test"
End Select
Auch verstehe ich nicht, was die Zeilen
Case Else
SaveFolder ="C:\Users\Public\Test"
bedeuten sollen? Die zwei Speicherorte werden doch schon darüber benannt.
DANKE schonmal

Anzeige
AW: Makro läuft nicht unter MS Office 16 für Mac
03.10.2015 11:41:10
fcs
Hallo Michael,
ich kenne die genaue Syntax für die Schreibweise des Pfades auf einem Mac nicht.
Welches Trennzeichen ist zwischen den Verzeichnissen anzugeben? / \ oder :
Muss der Laufwerksname mit angegeben werrden?
Die Else-Zeile mit einem weiteren Verzeichnis solltest du einbauen, falls die Datei mal auf einem anderen PC geöffnet wird.
Oder zumindest eine Meldung anzeigen und das Makro beenden.
Gruß
Franz

AW: Makro läuft nicht unter MS Office 16 für Mac
03.10.2015 16:27:23
mumpel
Wie ich schon erwähnte nutzt man unter Mac-OS Doppelpunkte als Pfadtrenner. Man kann jetzt aber nicht einfach "C:Test.xls" schreiben. Google weiss mehr darüber.

Anzeige
AW: Makro läuft nicht unter MS Office 16 für Mac
03.10.2015 17:02:33
Michael
Hallo Franz,
eigentlich sollte es / zwischen den Ordnern heißen. Klappt aber bisher leider noch nicht. Und bei meinem PC legt er jetzt den Ordner C:\Users\Public\Test an, obwohl der im code angegebene Ordner vorhanden ist.
Naja, ich werde mal einen befreundeten Macuser fragen, der kann mir vielleicht weiter helfen.
Dir aber noch mal ganz herzlichen Dank für die Hilfe. Ich bin schon einen großen Schritt weiter.
Schönes Wochenende
und Gruß Michael

AW: Makro läuft nicht unter MS Office 16 für Mac
03.10.2015 19:17:11
Martin
Hallo ihr zwei,
nehmt doch einfach "Application.PathSeparator", dann wird automatisch das korrekte Trennzeichen im Datei Pfad gesetzt:

With Application
SaveFolder = "G:" & .PathSeparator & "Uli macht Licht" & .PathSeparator & "Rechnungen" & . _
PathSeparator & "Rechnungsausgang"
End With
VG Martin

Anzeige
AW: Makro läuft nicht unter MS Office 16 für Mac
03.10.2015 20:20:43
Michael
Hallo Martin,
besten Dank für deinen Tipp. Werde ich testen dann Rückmeldung geben.
Schönen Abend allen
Grüße Michael

AW: Makro läuft nicht unter MS Office 16 für Mac
05.10.2015 21:22:10
Michael
Hallo nochmal Zusammen,
ich habe einiges ausprobiert und auch noch mal jemanden live drüber gucken lassen. Leider bisher alles ohne Erfolg. Ich werde mich vielleicht mal nach einer anderen Lösung umsehen (evtl parallels) und es einifach unter WIndows laufen lassen. Na mal sehen.
Vielen Dank nochmal an alle für ihre Mühe!
Gruß Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige