Newsgroup: it.comp.lang.visual-basic
Titolo: ancora "come chiudere excell"

 Set objExcel = Nothing
Prima di scaricare gli oggetti, prova a scrivere :
objExcel.Quit
Ciao Ciao
--
Mattia stacanovista...
anche scrivendo come dice Mattia "objExcel.Quit" excel resta sempre attivo
in memoria.
Non so piu' cosa fare.
aiutooooooooooooooooo!
--
Gaetano C.

 aiutooooooooooooooooo!
Provo a dire la mia.
Premetto che quando utilizzo Excel e vado a chiuderlo, di solito chiudo gli
oggetti nell'ordine inverso a quello col quale li ho aperti. Intendo dire
(usando le tue variabili e inserendo quando suggerito da Mattia):
Set wks = Nothing
wkb.Close False
Set wkb= Nothing
objExcel.Quit
Set objExcel = Nothing
Non so se l'ordine centra qualcosa, ma in questo modo non ho mai avuto
grossi problemi.
Poi vorrei dire un'altra cosa: immagino che l'istruzione
a = Cells(1, 2)
serva per prelevare il valore di una determinata cella. Non è che per caso
il problema sta nel fatto che utilizzi Cells in modo generico, anzichè
utilizzarlo riferito a wks?
Mi spiego. Prova, al posto di quello che hai scritto tu, ad utilizzare:
a = wks.Cells(1, 2)
perchè a me in un mio programma succedeva che facendo una cosa simile (cioè
senza utilizzare l'oggetto wks) andando a chiudere Excel, rimaneva comunque
un processo aperto di Excel.exe. Invece riferendolo a wks, funzionava bene.
Per la cronaca: io, per prelevare il valore di una cella, utilizzo Range:
xlSheet.Range("A1").Value.
Spero di essere stato sufficientemente chiaro e soprattutto di non aver
detto cavolate.
-- 
Ciao
Michele
Leva la pasta dal fuoco prima di rispondere in e-mail

 utilizzarlo riferito a wks?
Sicuramente il problema è quello che hai evidenziato.
Excel, se inserito tra i riferimenti di un progetto, espone alcune classi
"persistable" instanziate come "global multiuse".
Quindi se per caso (!) si invoca un qualunque metodo di una di queste classi
(per esempio cells) senza riferirsi alla istanza locale, viene creato un
nuovo riferimento che non è possibile impostare direttamente a nothing.
<x:termoPilucco>, global multiuse.

 ha scritto nel messaggio
news:bog085$1ea5fg$1...@ID-188026.news.uni-berlin.de...

Sono ancora Gaetano,purtroppo ho provato come dite voi,ma excel resta sempre
in esecuzione(cioe' premendo i tasti ctrl+alt+canc,ritrovo la voce
excel ),ho provato sia attivando il riferimento a MICROSOFT EXCEL 9.0
OB.LIBRARY che a
LIBRERIA DI OGGETTI MICROSOFT EXCEL 5.O;ti ripeto cosa faccio
n.b. io uso WINDOWS 98 ed EXCEL 2000
da una form1 io tramite un commandButton richiamo la form2 e nella private
sub Form_load della form2 inserisco il seguente
codice:
Dim objExcel As Excel.Application
Dim wkb As Workbook
Dim wks As Worksheet
'
Set objExcel = Excel.Application
Set wkb =
objExcel.Workbooks.Open(FileName:="c:/documenti/provproduttori.xls")
Set wks = wkb.Worksheets("Foglio1")
c = wks.Cells(1, 1)
Set wks = Nothing
wkb.Close
Set wkb = Nothing
objExcel.Quit
Set objExcel = Nothing
poi tramite un CommandButton sulla Form2(Load Form1,Unload
Form2,Form2.Hide,Form1.Show) vado via.
A questo punto se premo i tasti ctrl+alt+canc mi compare fra i vari nomi dei
programmi in esecuzione anche Excel .
Ho anche provato con:
Dim objExcel As Excel.Application
Set objExcel = Excel.Application
objExcel.Quit
Set objExcel = Nothing
Ma anche in questo caso Excel e' in esecuzione.
Puo' forse dipendere che uso EXCEL 2000
Gaetano

 Set objExcel = Excel.Application
In riferimento questa istruzione, quando crei l'oggetto objExcel, prova ad
utilizzare questa sintassi:
Set objExcel = CreateObject("Excel.Application")
