title image


Smiley Ist 'ne harte Nuss, aber ich glaube, ich hab da 'ne Lösung ...
Hallo Marco,



das Problem liegt darin, dass die aufrufende Prozedur durch das Workbook.Open der eigenen Datei stumpf abgebrochen wird und alles, was danach kommt, nicht mehr ausgeführt wird (also auch ActiveWorkbook.RunAutoMacros nicht). Da hilft dann nur 'ne Lösung per "von hinten durch die Brust ..."



Ich nutze dazu 'ne temporäre Datei (temp.xls) im selben Verzeichnis wie die aufrufende Datei. Man kann diese temporäre Datei aber erst löschen, wenn sie geschlossen ist; selber löschen kann sie sich aber auch nicht, da der Code nach dem ThisWorkbook.Close wieder abgebrochen wird (siehe oben). Das erinnert mich irgendwie an die Frage mit der Henne und dem Ei ...



Also der Code hat eben diesen kleinen Schönheitsfehler, aber ich denke, das ist akzeptabel. Hier der Code ...

'In DieseArbeitsmappe

Private Sub Workbook_Open()

Startprozedur

End Sub



'In einem normalen Modul

Sub NeuLaden()

Dim wb As Workbook

Dim stFile As String, stTmp As String



stTmp = ThisWorkbook.Path & "\temp.xls"

stFile = ThisWorkbook.Path & "\" & ThisWorkbook.Name



If Dir(stTmp) "" Then Kill stTmp

ThisWorkbook.SaveAs stTmp

Set wb = Workbooks.Open(stFile)

wb.RunAutoMacros xlAutoOpen



ThisWorkbook.Close False

End Sub



Public Sub Startprozedur()

MsgBox "Aber Hallo!"

End Sub



Gruss


scotty

I´m an admin. If you see me laughing, you should better have a backup.
Einen Fehler machen und ihn nicht korrigieren - das erst heisst wirklich einen Fehler machen.
Konfuzius


geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: