Newsgroup: it.comp.lang.visual-basic
Titolo: Gestione di Excel da Visual Basic

Ho messo nei riferimenti del mio progetto VB5 la libreria "Microsoft
Excel
9.0 Object Library".
Detto questo vi sottopongo il codice che ho sviluppato seguendo le
indicazioni di molti di voi; funziona tutto, o quasi. Nel senso che il
file che voglio creare con tutte le operazioni del caso funziona,
l'unico inconveniente č che per poterlo aprire devo per forza chiudere
VB5 altrimenti non si apre.
Questo, io penso, perchč rimane un processo excel "sospeso" che vedo
dal task-manager.
Ho provato a commentare delle righe di codice ad esempio quelle dove
cancello
i fogli oppure "Worksheets("Foglio3").Activate" e provando cosě
funziona (riesco ad aprire il file xls), ma io ho bisogno di fare
queste operazioni.
Sapreste aiutarmi?(credo di sě)
grazie a tutti
stefano
******* INIZIO CODICE *******
Sub Pippo()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbooks.Add
'elimina i fogli della cartella di lavoro attiva senza visualizzare
'la finestra di dialogo di conferma
Application.DisplayAlerts = True
Set xlSheet = xlBook.Worksheets(1)
nome = xlSheet.Name
ActiveWorkbook.Worksheets(nome).Delete False
Set xlSheet = xlBook.Worksheets(1)
nome = xlSheet.Name
ActiveWorkbook.Worksheets(nome).Delete False
'rinomina il foglio 3
Set xlSheet = xlBook.Worksheets(1)
Worksheets("Foglio3").Activate
xlSheet.Name = "foglioexcel1"
'scrive nel foglio qualcosa
xlSheet.Range("A1").Value = 100
xlSheet.Cells(3, 5) = 500
xlBook.SaveAs (App.Path & "\" & "test.xls")
xlBook.Close False
xlApp.Quit
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
******* FINE CODICE *******

 Set xlApp = Nothing
Sbagliato l'ordine! Quando esci con .Quit, foglio e cartella
sono ancora referenziati e quindi non li scarica.
L'ordine corretto e':
Set xlSheet = Nothing
xlBook.SaveAs (App.Path & "\" & "test.xls")
xlBook.Close False
Set xlBook = Nothing
xlApp.Quit
Set xlApp = Nothing
hth,
Lokar
--
Sito Comune: 
http://www.it-lang-vb.net/
Manifesto: 
http://www.it-lang-vb.net/docs/Manifesto.txt
UGIdotNET - 
http://www.ugidotnet.org

 Lokar
Anzitutto grazie x l'interessamento,
ho provato a cambiare il codice seguendo l'ordine che mi hai
consigliato ma purtroppo ti devo dire che il risultato non è cambiato.
Anzi mi sono accorto che nel codice da me proposto ci sono 2 errori
riguardanti il "delete" dei fogli
quindi riporto il codice corretto con la variazione da te
consigliatami
Sub Pippo()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbooks.Add
'elimina i fogli della cartella di lavoro attiva senza visualizzare
'la finestra di dialogo di conferma
Application.DisplayAlerts = False
Set xlSheet = xlBook.Worksheets(1)
nome = xlSheet.Name
ActiveWorkbook.Worksheets(nome).Delete
Set xlSheet = xlBook.Worksheets(1)
nome = xlSheet.Name
ActiveWorkbook.Worksheets(nome).Delete
'rinomina il foglio 3
Set xlSheet = xlBook.Worksheets(1)
Worksheets("Foglio3").Activate
xlSheet.Name = "foglioexcel1"
'scrive nel foglio qualcosa
xlSheet.Range("A1").Value = 100
xlSheet.Cells(3, 5) = 500
Set xlSheet = Nothing
xlBook.SaveAs (App.Path & "\" & "test.xls")
xlBook.Close False
Set xlBook = Nothing
xlApp.Quit
Set xlApp = Nothing
End Sub
grazie