ciao ragazzi,
non posso crederci....ero in cerca su goole per capire come visualizzare una MsgBox su excel e mi sono ritrovato in un forum dove ho trovato la soluzione per chiudere i processi in background che permangono aperti....praticamente nonostante la chiusura dell'applicazione Excel o Word il processo restava aperto in background (lo si vede nel taskManager di windows)!!
dovrebbe fungere con qualsiasi app della famiglia OFFICE creata o aperta tramite VB.NET mettendoci i riferimenti asseconda se è excel, word o latro che sia!
vi posto il link al sito:
http://vbcity.com/forums/t/74226.aspx
per excel, io l'ho personalizzata così :
in una sub che ha come parametro l'applicazione excel in uso, la chiamo subito dopo che ho terminato l'iterazione con il documento office... (deve essere lanciata prima della chiusura del documento, altrimenti il riferimento all'applicazione excel va su NOTHING e non è più possibile effettuarla...magari se qualcuno sa come intervenire per quest'altro piccolo problema...?)
codice:Public Sub AzzeraProcessiExcel(ByVal ApplicazioneExcel As Excel.Application) ' controllo riferimento su Nothing If ApplicazioneExcel Is Nothing Then Return With ApplicazioneExcel For Each XlSheet As Excel.Worksheet In .Worksheets System.Runtime.InteropServices.Marshal.ReleaseComObject(XlSheet) Next For Each xlWBook As Excel.Workbook In .Workbooks System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWBook) Next System.Runtime.InteropServices.Marshal.ReleaseComObject(ApplicazioneExcel) End With ' Force the Garbage Collector (if desired) ' System.GC.Collect() ' Feedback End Sub
funziona perfettamente!! Adesso quando si chiude il documento (da codice o direttamente da Excel), il processo in taskmanager sparisce, quindi è chiso e la memoria liberata![]()
non ne potevo più!!![]()

Rispondi quotando