Newsgroup: it.comp.lang.visual-basic
Titolo: chiusura excel

Tranquilli... non è una faq (spero).....
Non mi riesce di chiudere l'istanza di excel aperta da programma... per mè
la cosa è assolutamente incomprensibile.
Posto un po' di codice:
<inizio codice>
Set prgExcel = New Excel.Application
Set FileExcel = prgExcel.Workbooks.Open(Nomefile)
Set FoglioExcel = FileExcel.Worksheets("listlafonexcel")
For i = 4 To 65000
    If FoglioExcel.Cells(i, 1) <> "" Then
        TabellaDatiLetti.AddNew
        TabellaDatiLetti("prefisso") = Left(FoglioExcel.Cells(i, 2), 3)
        TabellaDatiLetti("impianto") = Trim(Str(Val(Mid(FoglioExcel.Cells(i,
2), 4))))
        If Left(TabellaDatiLetti("impianto"), 1) <> 1 Then
            TabellaDatiLetti("impianto") = "0" &
Trim(Str(Val(TabellaDatiLetti("prefisso")))) & TabellaDatiLetti("impianto")
        End If
        TabellaDatiLetti("ordinativo") = Format$(FoglioExcel.Cells(i, 3),
"000")
        TabellaDatiLetti("dataOrd") = DateValue(FoglioExcel.Cells(i, 1))
        TabellaDatiLetti("Tipo") = FoglioExcel.Cells(i, 9)
        DoEvents
        TabellaDatiLetti("Causale") = FoglioExcel.Cells(i, 14)
        TabellaDatiLetti("stato") = Trim(FoglioExcel.Cells.Item(i, 11))
        TabellaDatiLetti.Update
    Else
        Exit For
    End If
    tbRecordAnalizzatiDesigner.Text = Val(tbRecordAnalizzatiDesigner.Text) +
1
    tbRecordAnalizzatiDesigner.Refresh
Next i
Set FoglioExcel = Nothing
MsgBox "Importazione dati Designer completata"
FileExcel.Close
prgExcel.DisplayAlerts = False
prgExcel.Quit
Set FileExcel = Nothing
Set prgExcel = Nothing
<fine codice>
la situazione è questa: se faccio eseguire il codice così com'è
l'applicazione excel non si chiude correttamente, basta che io elimini una
delle righe con cui leggo i dati dal foglio di excel, e tutto funziona
correttamente.
Quando dico "basta eliminare una riga" intendo prorpio una qualsiasi delle
righe comprese tra
TabellaDatiLetti("prefisso") = Left(FoglioExcel.Cells(i, 2), 3)
e
TabellaDatiLetti("stato") = Trim(FoglioExcel.Cells.Item(i, 11))
Qualcuno ha mai riscontrato un comportamento del genere?
Qualcuno saprebbe come porre rimedio a questo spiacevole comportamento?
Un ringraziamento anticipato a tutti
Salutoni
Sergio

[CSSoft] ha scritto:
(snip)
aggiungo che il comportamento anomalo (mancata chiusura di exccel) si
verifica solo nel caso di file "lungo", nel senso che, operando su un file
excel contenente 2100 righe non si riesce a chiudere l'applicazione, su un
file di 240 funziona tutto...
Mistero fitto (per mè)
Salutoni
Sergio

 Set prgExcel = Nothing
prova.
ciao
ugo

 Set prgExcel = Nothing
ho provato, credo di aver provato tutte le combinazioni possibili, (tranne
che impostare a nothing l'oggetto prgExcel _prima_ di utilizzare il metodo
quit ;-) o forse in un momento di follia ho provato anche quello)
ho provato a rendere visibile l'applicazione excel o a nasconderla, a
salvare il workbook o no, a settare gli alert o meno....
L'unica differenza che ho trovato, come già detto nei post precedenti, è che
se leggo meno righe, o meno celle per riga, l'applicazione si riesce a
chiudere correttamente, ma non è chiaramente un comportamento accettabile.
Fortunatamente questa importazione di dati non è inserita in un programma da
distribuire, se no penso che, oltre al suicidio, dovrei/potrei valutare le
seguenti alternative:
1) effettuare l'importazione a pezzettini, chessò 500 righe alla volta
2) evitare di utilizzare excel come strumento di salvataggio dei dati
Parentesi personale:
_odio_ excel e chi lo usa come comodo database perchè non sa usare altro.
Piuttosto che farmi inviare dati salvati in formato excel preferisco un file
di testo formattato alla cdc (purchè si conosca il tracciato)
chiusa parentesi, perdonate lo sfogo
Salutoni
Sergio