Newsgroup: it.comp.lang.visual-basic
Titolo: Errore di automazione - soluzione?

domenica ho postato una richiesta di aiuto e poi all'invito di ALBEV
ho postato anche il codice... ma non ho più ricevuto risposta:
espongo quindi un'altra volta il problema ed il codice se qualche
anima pia vuole suggerire qualche cosa perchè sono veramente nella
cacca...
ho sviluppato un PGM (anni fa) con vb5+sp3 che utilizza excel
per le stampe...
tutto ha funzionato finchè sulle macchine dove gira il programma non è
stato installato un altro PGM sviluppato con XP,vb6,sp5 . da allora
quando vengono chiamati i miei form per la generazione dei fogli excel
il programma si blocca con un errore
Error: 0x80070725 
(-2147023067
)
Description: Incompatible version of the RPC stub.
ho indagato sul sito di supporto  MS il quale spiega che l'errore è
dovuto alle librerie di windows XP installate dal setup del 2°
programma.
http://support.microsoft.com/default.aspx?scid=kb;en-us;320108
Domanda: come posso far tornare in vita il mio,PMG tenedo conto
che non ho accesso alle macchine in cui si verifica il problema in
quanto localizzare in giro per l'italia?
questo è il codice che utilizzo per creare l'oggetto excel e le
relative cartelle
Public GoExcel As Excel.Application
Public obj_sheet As Excel.Worksheet
Function MSExcelOpen()
        Screen.MousePointer = 11
        On Error Resume Next
        Set GoExcel = Nothing
        Set GoExcel = GetObject(, "Excel.Application")
        If Err = 429 Then
                Set GoExcel = CreateObject("Excel.Application")
        End If
        If GoExcel Is Nothing Then
            MsgBox "Errore...", 64, "Errore"
            MSExcelOpen = False
        Else
            If Not GoExcel.Visible Then
                GoExcel.Visible = True
                GoExcel.WindowState = xlMinimized
            End If
            MSExcelOpen = True
            GoExcel.WindowState = xlMinimized
        End If
            DoEvents
        Screen.MousePointer = 0
End Function
questo è dove lo utilizzo ... come ho detto prima non posso fare debug
sulle macchine dove è installato il pgm.. ma solo sulla mia di
sviluppo e lì non rilevo errori....
If MSExcelOpen() Then
       Screen.MousePointer = 11
       inizializza_cartella (vedi sub sotto)
       riga_excel = 1
       obj_sheet.Rows(riga_excel).Font.Bold = True
       obj_sheet.Cells(riga_excel, 1) = "INIZIALE"
       obj_sheet.Cells(riga_excel, 2) = "Stanziato"
       obj_sheet.Cells(riga_excel, 3) = "Crediti"
       obj_sheet.Cells(riga_excel, 4) = "Incassato"
       ................
       piu altri dato che arrivano da un recordset.....
       eccetera eccetera....
      ...........................
       Screen.MousePointer = 0
       GoExcel.Worksheets("Entrate").Activate
       GoExcel.WindowState = xlMaximized
end if
	poi "uccido" l'oggetto 
	coon sub MSExcelKill
Sub inizializza_cartella()
        GoExcel.Workbooks.Add
        GoExcel.ActiveWorkbook.Worksheets.Add
        GoExcel.ActiveWorkbook.Worksheets.Add
        GoExcel.ActiveWorkbook.Worksheets.Add
        GoExcel.Worksheets(1).Name = "Entrate"
        GoExcel.Worksheets(2).Name = "Uscite"
        GoExcel.Worksheets(3).Name = "Cassa"
End Sub
Sub MSExcelKill()
    On Error Resume Next
        GoExcel.WindowState = xlMaximized
        GoExcel.Quit
        Set GoExcel = Nothing
        Set obj_sheet = Nothing
    Exit Sub
errore:
    MsgBox Err.Description
    Exit Sub
End Sub
grazie e ciao
palmiro

 sviluppo e lě non rilevo errori....

    Solo qualche considerazione, dopo una lettura veloce:
        . Non si capisce come e dove valorizzi obj_sheet.
        . Setti a Nothing GoExcel *prima* di obj_sheet.
        . Non si vede dove e come tu chiuda obj_sheet. Operazione da fare
comunque *prima* di GoExcel.Quit.
--
Ciao :-)
Maurizio
--------
?SPQR(C)
 X
--------

           comunque *prima* di GoExcel.Quit.
	hai ragione ho corretto.
il codice funziona bene... seguito con ore di debug eccc... ho persino
provato con più versioni di excel e non ho avuto problemi.... 
MA COME DICE MICROSOFT nella FAQ di support che ho citato
il preblema E' GENERATO dalla sostituzione delle librerie
Oleaut32.dll    asycflit.dll   stdole2.tlb    olepro32.dll
presenti in windows XP che l'altro software ha installato.
sono sicuro, ma come ho spiegato non posso farlo perche
i computer dove sono installati i software mi sono inaccessibili...,
che se elimino le librerie installate dal secondo software e le
sostutuisco con quelle che sono nel mio pacchetto tutto
ritorna a funzionare....
In altre parole sono SICURO che il codice che genera le
cartelle e i fogli su excel E' CORRETTO  ma che i problemi
sono escusivamente nella diversa versione delle librerie
citate.... il casino è che non riesco a trovare un modo per risolvere
il problema con una patch.
ciao,
palmiro