Excel 2010 - Makro in anderem Workbook starten

Hallo zusammen,

ich will in Excel 2010 per VBA ein Makro in einer anderen Mappe ausführen. Durch Codeschnipsel, die ich im Internet fand, habe ich mir eine Funktion gebastelt, die aber nicht so recht will.

Unten meine Funktion um das Makro zu starten. Bis zum Aufruf Application.Run läuft alles Problemlos. Im VBA-Editor (Explorer) erscheint sogar die ausgewählte externe Mappe mit den Modulen.

Function fnc_ExcelMakroStarten(strWorkbook As String, strMakro As String)
Dim wbExt As Workbook
Dim strExtName As String
Set wbExt = GetObject(strWorkbook)
strExtName = wbExt.Name
Application.Run strExtName & „!“ & strMakro
wbExt.Close
Set wbExt = Nothing
End Function

Dann kommt aber folgende Fehlermeldung:
„Das Makro ‚…!..‘ kann nicht ausgeführt werden. Das Makro ist möglicherweise in dieser Arbeitsmappe nicht verfügbar, oder alle Makros wurden deaktiviert.“

Wo ist das Problem? Sind es die scheiß Sicherheitseinstellungen in Excel 2010??? Ich habe bereits alle Sicherheitseinstellungen, soweit mir bekannt, komplett abgeschaltet, aber es funkt trotzdem nicht.

Jemand ne Idee?

MfG
Stephan

Hallo Stephan,

Unten meine Funktion um das Makro zu starten. Bis zum Aufruf
Application.Run läuft alles Problemlos. Im VBA-Editor
(Explorer) erscheint sogar die ausgewählte externe Mappe mit
den Modulen.

kannst du in Excel auch zu diesem Zeitpunkt (F8) die neue Mappe auswählen?

Wo ist das Problem? Sind es die scheiß
Sicherheitseinstellungen in Excel 2010??? Ich habe bereits
alle Sicherheitseinstellungen, soweit mir bekannt, komplett
abgeschaltet, aber es funkt trotzdem nicht.

Ich habe kein XL 2010. Nachfolgender Code ist mit XL 2000 und XL 2007 getestet.

Gruß
Reinhard

Option Explicit

Sub test()
Dim S
S = fnc_ExcelMakroStarten(„k:\datumssuche.xls“, „test2“)
End Sub

Function fnc_ExcelMakroStarten(strWorkbook As String, strMakro As String)
Workbooks.Open strWorkbook
Application.Run ActiveWorkbook.Name & „!“ & strMakro
ActiveWorkbook.Close savechanges:=False
End Function

… hat sich erledigt.