Diesen Proceduren möchte ich Variablen übergeben. Funktionieren die Proceduren dann noch gibt es etwas zu beachten?!
Die Proceduren übernehmen die funktion der Before_close und open in diese arbeitsmappe!
an die auto_open kannst Du Parameter übergeben, solltest diese allerdings als Optional deklarieren, da es andernfalls, wenn kein Parameter übergeben wird, die Mappe z.B. manuell geöffnet wird, zu einer Fehlermeldung kommt.
Wie Du Dir das allerdings für die auto_close-Prozedur vorstellst, ist mir schleierhaft.
Wird eine Arbeitsmappe per Makro geöffnet, wird das auto_open-Makro nicht ausgeführt, wenn diese nicht explizit aufgerufen wird. Du kannst also den Aufruf in dieser Art vornehmen (12 ist der zu übergebende Parameter):
hans
Sub auto_open()
MSGBOX("Hallo")
end sub
öffne ich die Arbeitsmappe in der die Procedure steht per Hand so wird das Makro ausgeführt!
Achtung!!!! Ich habe den Code nicht in dem Modul diese arbeitsmappe Workbooks before open drin!
Das ganze funktioniert auch als sub auto_close()
Nun meine Frage!
Ich erstelle neue Arbeitsmappen, kopiere Tabellenblätter hinein und möchte die Proceduren auto_open und close auch in die Mappe kopieren und ihnen Werte übergeben!!!!
Geht das?
Kann ich an diese Proceduren Werte übergeben!
Kann ich es genause für Workbook_Before_close() machen?!
Weiter wenn ja, kann es Probleme mit verschiedenen Betriebssytemen oder Excel Versionen kommen das Workbook_open() nicht ausgeführt wird, oder gibt es etwas besonderes zu beachten (welches modul, etc) ?!
'StandardModule: mHWH
Sub OpenProzedurAnlegen()
Dim nWB As Workbook
Dim mdlWB As Object
Set nWB = Workbooks.Add
Set mdlWB = nWB.VBProject.VBComponents("DieseArbeitsmappe")
With mdlWB.CodeModule
.InsertLines 3, "Private Sub Workbook_Open()"
.InsertLines 4, " Msgbox ""Bin jetzt da!"""
.InsertLines 5, "End Sub"
End With
End Sub