PDA

Vollständige Version anzeigen : VBA Export eines Makros funktioniert nicht mit Excel 2010


Nrie
16.09.2011, 16:58
Hallo,

ich habe ein Problem mit dem Übergang Excel 2007+Windows XP zu Excel 2010+Windows 7. Und zwar haben wir ein Makro programmiert, mit dem eine neue Excel-Datei erstellt wird und in diese neue Datei ein Makro eingefügt wird, und zwar mit folgender Formel:

Dim sPath As String
sPath = Application.Path & "\"
ThisWorkbook.VBProject.VBComponents("MA_Export").Export sPath & "MA_Export.bas"
'Workbooks.Add 1
Workbooks(Dateiname2).Activate
With ActiveWorkbook.VBProject
.VBComponents.Import sPath & "MA_Export.bas"
.VBComponents("MA_Export").Name = "MyModul"
End With
Kill sPath & "\MA_Export.bas"
'MsgBox "Modul wurde kopiert!"

Dieses Makro funktioniert auch einwandfrei und zwar in der Kombination Excel 2007professional+Windows XP als auch Excel 2007professional+Windows 7.

Auf den Rechnern von unserem Kunden Excel 2010Home + Windows 7, aber auch Excel 2007Home + Vista oder Windows 7 funktioniert das ganze nicht. Obwohl wir vorher bei Excel auch die Makro-Sicherheitseinstellung "Zugriff auf das VBA-Projektmodell vertrauen" angepasst haben. Folgende Fehlermeldung wird angezeigt:

Laufzeitfehler '50035': Die Methode 'Export' für das Objekt '_VBComponent' ist fehlgeschlagen

Ich vermute entweder liegt das Problem in der Home-Office-Version,dass da bestimmte Funktionen eingeschränkt sind oder am Betriebssystem oder wurden bei Excel 2010 wietere Sicherheitseinstellungen gebastelt, die alles blockieren, ohne dass darauf hingewiesen wird? ? Kann mir hier jemand helfen?

Das Tool muss eigentlich seit dieser Woche beim Kunden laufen, deswegen wäre ich über alle Lösungsideen sehr dankbar!

Viele Grüße
Natalia

Hajo_Zi
16.09.2011, 17:19
Hallo Natalia,

ich habe auch nur den Zgriff auf das VBA Projkt zugelassen und ich kann meinen Code zum Export und Import benutzen. Der ein wenig umfangreicher ist als Deiner. Ich exportiere den gesamten VBA Code.

<img src="http://Hajo-Excel.de/images/grusz1.gif" align="middle" height="40" alt="Grußformel"><a href="http://Hajo-Excel.de/index.htm" onclick="window.open(this.href);return false"><img border="0" src="http://Hajo-Excel.de/images/logo_hajo3.gif" align="middle" height="40" alt="Homepage"></a>

EarlFred
17.09.2011, 15:21
Hallo Natalia,

Zugriffsrechte sind aber ausreichend vorhanden, um die Exportdatei in dem Verzeichnis zu schreiben? Hast Du mal ein anderes Verzeichnis als Speicherort versucht?

Wenn es ein Codemodul ist und keine Userform, ginge es auch ohne Zwischenschritt des Exportierens:
Option Explicit
Sub Modul_kopieren()
Dim wb As Workbook, cm As Object

Set wb = Workbooks.Add
Set cm = wb.VBProject.VBComponents.Add(1)
With ThisWorkbook.VBProject.VBComponents("MA_Export").CodeModule
cm.Name = "MyModul"
cm.CodeModule.AddFromString .Lines(1, .CountOfLines)
End With

'ggf. weiterer Code

Set cm = Nothing
Set wb = Nothing
End Sub

Grüße
EarlFred