Prüfen, ob eine Excel-Datei Makros enthält

Hallo liebe Experten,
ich habe das folgende Problem:

wir werden bei der Arbeit von OfficeXP zu Office2010 migrieren.

Es gibt in der neuen Office-Version folgende Änderungen.

Die Excel-Dateien die Makros enthalten werden mit der Endung XLSM abgespeichert und die ohne mit XLSX.

Ich würde gern schon jetzt meine Excel-Dateien anpassen, sodass die jenigen, die Makros enthalten, die Endung XLSM verpasst bekommen. Dies natürlich mit VBA.

Jetzt meine Frage:
Gibt’s eine Möglichkeit über VBA zu prüfen, ob eine normale XLS-Datei (Excel-Datei Office XP) Makros enthält?

Somit würde ich meine ganzen XLS-Dateien durchgehen und die dann mit der entprechenen Endung umbenennen (XLSX oder XLSM).

Eine Andere Frage? fällt es jemandem ein, wie man so ein Problem eleganter lösen könnte ?

Ach ja: Was ich noch als Erklärung hinzufügen wollte. Ich möchte meine Daten trennen (xlsx und xlsm), weil die neue Version von Office Dateien mit Makros sehr schnell öffnen kann, wenn diese die entsprechenden Endungen haben.

Ich bedanke mich im Voraus für die Hilfe.

Willy

Hallo Willi,

die Dateien einfach umzubennen führt dazu, dass sie sich gar nicht mehr öffnen lassen! Man muss also jede Datei öffnen und als .XLSX oder .XLSM speichern.

Ich weiss nicht wie man das in VBA programmiert, ist aber eigentlich auch gar nicht nötig, da es dafür schon kostenlose tools im internet gibt, die funktionieren und
können ganze Verzeichnisse umwandeln.
Ich habe dieses hier
http://www.softinterface.com/Convert-XLS/Features/Co…
mal ausprobiert und eine xls mit Makro in xlsm konvertiert und diese liess sich ohne weiteres öffnen.
Kannst gerne gucken ob du noch schönere Programme findest :wink:
XLS-Dateien ohne Makros kann man übrigens auch als .XLSM abspeichern. Ich denke, die werden dann wie normale .XLSX behandelt, zumindest öffnen sie sich so!
Warum willst du sie eigentlich trennen?

Ansonsten hat vielleicht jemand anderes noch ein VBA zu suchen von Axcels mit Makro, ich müsste jetzt erst eins programmieren.

LG
Patrick

Hallo Patrick,
vielen Dank für die schnelle Antwort.

Du hast ich glaube Recht, ich kann einfach nicht so unbenennen, weil sonst die Dateien sich nicht mehr öffnen lassen würden (Vermute ich laut was ich gelesen habe).

Ich habe auch einen totalen falschen Ansatz gehabt :smile:.

Ich versuche’s nochmal:

Wir haben zwar noch nicht Office 2010 im Büro, aber wir wollen bald zu dieser Version migrieren.
In Angst und Panik für die ganzen Dateien, die Makros beinhalten und aber die normale Endung (.xls) haben, dachte ich es wäre „Klug“, die schon umzubennen, sodass Office2010 sie ohne Probleme öffnet.(Z.B ohne die Makros zu löschen, usw … ).

Das war aber extrem „stupid“ von mir, da Office2010 die alte dateien normal aufmachen kann.

Meine Sorgen haben teilweise angefangen, weil ich Makros, die Prozedur haben, um andere Excel-Datei zu öffnen. Die ganzen Excel-Dateien werden auch ständig geändert.

So, was ich jetzt machen werde (es könnte jemandem irgendwann helfen):

Ich werde 3 Abfragen vorm Öffnen über VBA der Excel-Dateien´schreiben, zwar :

1 - Ich frage ab, ob eine .xlsm-Datei mit dem gewünschten Name vorhanden ist, wenn nicht:
2 - frage ich ab, ob eine mit .xlsx da ist, wenn nicht:
3 - dann die normale Datei.

der code würde so ähnlich aussehen:

If pfad + dateiname.xlsm „“ Then

call open_file(dateiname.xlsm)

ElseIf pfad + dateiname.xlsx „“ Then
call open_file(dateiname.xlsm)
Else
call open_file(dateiname.xls)
End If

Die Endung von der Dateien zu ändern wäre cool, da excel, die xls die Makros beinhalten in xlsm komprimiert.(diese Dateien werden deutlich kleiner, d.h laden viel schnell auf).
Leider kann ich nichts bei der Arbeit installieren (Zugriffsrechte und so … ).

Danke für die Hinweise und falls jemand noch was hinzufügen hat, wäre auf jedenfall super. „Man lernt ja nie aus“.

Viele Grüße.

Willy

Hallo Willy,

ich habe leider mit Excel2010 noch keine Erfahrungen.
Es gibt sicher eine Möglichkeit über VBA Macros in anderen Dateien anzusprechen, dann müßte man aber sicher deren Namen kennen.
Ich wäre bei diesem Problem auf ‚Handarbeit‘ angewiesen - wieviele Dateien sind es denn?

Sorry ,das ich nicht weiterhelfen kann.

Gruß Armin

Hallo Willy,
sorry für die verspätete Antwort, aber ich war jetzt länger krank. Leider kann ich Dir auch nicht weiter helfen.

Gruß
Vincenz

Hallo Willy,

zunächst möchte ich mich dafür entschuldigen, dass ich erst jetzt antworte; aber aufgrund einer sehr schweren Operation bin ich erst jetzt in der Lage, die zwischenzeitlich erhaltenen emails abzuarbeiten.

Ich hoffe, die konnte anderweitig geholfen werden. Ansonsten -falls sich dein Problem nicht erledigt hat- melde dich noch mal.

Trotzdem liebe Grüße,
Peter

Hallo Willy,

entschuldige die späte Antwort, ich bin zum damaligen Zeitpunkt schon länger aus dem VBA-Thema raus gewesen.

Und da ich Deine Anfrage einfach nicht abweisen kann, wollte ich wenigstens fragen, ob Du inzwischen eine Lösung gefunden hast.

Sorry,
Michael

Hallo Michael,
danke für die Antwort.
Das Thema hatte sich inzwischen erledigt und bin schon längst aus dem Projekt raus.
Ich glaube ich konnte am Ende trotzdem nicht überprüfen, ob eine Datei eine Makro enthält.

Viele Grüße.
Willy