Excel: Makro als Add-in

Hallo,

Ich habe in Excel folgendes Makro:

Dim s as shape
On error resume next
For each s in ActiveSheet.Shapes
s.Placement=xlMoveandSize
Next

Dieses Makor behebt das Problem in Excel, dass bei Tabellenfelder die Kommentare enthalten die Funktion „optimale Breite feststellen“ nicht mehr funktioniert.

Nun möchte ich das dieses Makro in jeder neuen Exel Datei verfügbar ist und automatisch ausgeführt wird. Bisher habe ich versucht das Makro in die Prozedur private sub auto_open() zu packen und die Excel Datei dann als Add-in abzuspeichern. Leider funktioniert das nicht. Der Debugger meldet bei den Excel Dateien in die das add-on integriert ist in der Zeile „For each s in activeSheet.shapes“ ein Fehlermeldung.

Für ein Lösung wäre ich sehr dankbar,
yuna

Hallo Yuna
Ich könnte mir vorstellen, dass bei diesem Befehl das Problem bei ActiveSheet liegt. Du verweist vermutlich auf ein Sheet objekt, welches noch gar nicht existiert. Du Kannst dieses Makro erst dann ausführen, wenn ActiveSheet = True ist.
Das Weitere Problem ist ActiveSheet als befehl. Du weisst nie welches Tabellenblatt aktiv ist. Deshalb definiere zuvor ActiveSheet mit dem befehl Sheet(„name“) oder Sheet(nummer).activate das ActiveSheet, dann könnte es u.U. gehen. Geht es denn noch nicht, so wird vermutlich Add-In ausgeführt bevor das blatt vorhanden ist.
Eine weitere möglichkeit wäre, wenn Du die follgende Sub anweisung in das Modul „Diese Arbeitsmappe“ einfügst.
Sub Workbook_Open()

End sub
Hier bin ich sicher, dass der Code erstz ausgeführt wird, wenn eine Tabelle vorhanden ist.
Wenn Du das ganze nun als Vorlage speicherst und nur noch diese Vorlage ausführst bei Excelstart, wäre das Problem ja gelöst.
Zertifiziere Das Makro noch mit Selfcert.exe, damit Du die Makros nicht mehr aktivieren musst.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]