Hi,
Du musst schon etwas genauer werden. Je genauer Du sagts, was Du möchtest bzw. Dir vorstellst oder erreichen willst, desto besser kann man darauf eigehen.
- Datei Schliessen:
-- geht über das kleine "X"
-- geht über das Menü
-- geht via VBA ("ThisWorkbook.Close")
In allen Fällen sollte dabei das Ereignis "Workbook_BeforeClose" ausgelöst werden. Also würde ich den Code genau dort hinein packen.
- MsgBox dürfte soweit ja klar sein.
Ist nun Dein BatchFile fertig und funktionsfähig, dann kannst Du es in diesem Codeabschnitt auch gleich mittels VBA starten:
Shell "C:\MeinBatchFile.bat" 'Pfad/Dateiname anpassen
So kein weiterer Code im "Workbook_BeforeClose"-Ereignis steht, geht nun das "ganz normale Dateischliessen" weiter. (Rückfrage "Speichern:JA/NEIN/ABBRUCH", ...)
Bedenke aber: Du möchtest die Datei versenden, in der eben dieser Code steht. Die in diesem Post geschilderte Vorgehensweise sendet also die Datei, deren Pfad im BatchFile passen muss, OHNE die Änderungen nach dem letzten Speichern.
Zu allem Überfluss steht der Code dann auch in der Datei auf dem FTP. Wird diese Datei dann also auf einem "fremden" Rechner gestartet/beendet, läuft auch dort der Code an, und sucht das dort sicher nicht vorhandene BatchFile=> Fehler zur Laufzeit. ... ...
soweit mal bis hierhin...
bye
malSchauen