Newsgroup: it.comp.lang.visual-basic
Titolo: [?] VB6 + Excel + OLE

Premetto che sono molto newbie con l'utilizzo di oggetti ole.
->L'obbiettivo: 
visualizzare fogli excel all'interno di una form VB, in modo che l'utente
possa interagire col foglio stesso. 
->Cosa ho provato: 
Office Web Component, che però mi fà un paio di problemi: non riesco ad
aprire un file (e questo sarebbe mal di poco, perchè avevo già trovato
come ovviare al problema), gestisce un solo Sheet (e a me ne servono
molti, tutti collegati fra di loro,
Poi mi sono barcamenato un pò con l'escel.application.. automazione ole.
Bello, si raggiungono tutti i metodi di Excel, si possono fare tutte le
modifiche da codice, ecc.. ma non è quello che mi serve.
Il fatto è che mi vengono passati dei fogli -molto complessi- Excel e io
devo solo inserirli nella form. Tutto qui.
->Cosa sto provando (e mi sta incasinando)
Gli insertable object.
Allora.. ho provato a mettere l'oggetto Sheet. Lo trascinoi sulla form,
non posso specificargli in fase di design il file da utilizzare e se
comincio a utilizzare i suoi metodi da Shhet1.Object.blahblah nel 90% dei
casi mi becco degli out of memory.
Strada alternativa: trascino un oggetto OLE sulla form, faccio un "create
from file" e gli indico l'XLS da utilizzare. Perfetto! 
Due problemi: 
*per far apparire il foglio a runtime devo eseguire un doppio click
sull'oggetto (e questo magari con calma posso anche vedere come ovviarlo)
*non ci sono le scrollbars... e vedo solo una parte del primo sheet. Ho
provato ad attivare tutte le proprietà "scrollbars" che ho trovato (metodo
empirico ;-) partendo da ole1.object...
Ok avrete ben capito che sono un pivello.. giuro che mi son girato tutto
san google alla ricerca di vecchi messaggi (e c'era qualcuno che chiedeva
ad esempio delle toolbars, senza ricevere risposta) e mi sto ripassando
l'msdn on line, ma al momento non vengo a capo di niente.
Eppure l'obbiettivo finale non mi sembra niente di astruso, tutto sommato.
Saluti al NG
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Premetto che sono molto newbie con l'utilizzo di oggetti ole.
te la butto molto lě: perchč non apri direttamente excel?
Tramite l'oggetto application imposti i parametri che vuoi, poi fai
application.visible.
Non č particolarmente raffinato, come metodo, perň potrebbe servire alla
bisogna...
--
Salutoni
Sergio

 sommato.
Sembra facile.
In realtà hai dei vincoli particolarmente sfigati.
Ad esempio, l'OWC è splendido, ma giustamente ha la limitazione dello sheet.
Al limite, puoi tentare una cosa (bruttina, se vogliamo, ma può aiutarti):
Metti sulla form un controllo Tabbed (non ricordo esattamente il nome, è
quello con i vari tab, tipo le finestrelle delle opzioni). Da codice,
sicuramente c'è modo di aumentare il numero di tab.
Sul primo tab, metti uno spreadsheet di OWC.
Quando apri l'origine excel, conti quanti sheet ti servono, aggiungi tanti
tab quanti ti servono, e su ognuno aggiungi un controllo spreadsheet.
Poi li popoli, ciascuno con lo sheet di origine.
Problema: sicuramente le funzioni Excel che fanno riferimento da un sheet
all'altro non funzioneranno. Nei tuoi dati ce ne sono?
Ciao
Alberto

 bisogna...
E' quello che devo evitare :-)
In realtà il foglio excel non deve essere manipolato da codice (anche se
ho trovato come fare.. molto interessante, se mi servirà in futuro), ma
usato "as is" dall'utente.
Deve solo essere contenuto in una form VB perchè devo far sparire la
possibilità di salvare o vedere le formule nel foglio xls stesso. Se apro
excel, basta un "salva con nome.."
Saluti


 Alberto
Grazie, ciao
Andrea


 apro excel, basta un "salva con nome.."
    Momento...
    Ma dal tuo codice nel form VB puoi impedire il salvataggio
dell'oggetto incorporato.
    Poi considera questa cosa:
        Formato > Stile...
        [ Modifica... ]
        Protezione
        [v] Bloccata
        [v] Nascosta
        [ OK ]
        [ OK ]
    E (se serve) questa:
        Property Visible As XlSheetVisibility
            Membro di Excel.Worksheet
        Const xlSheetVeryHidden = 2
            Membro di Excel.XlSheetVisibility
-- 
Ciao :-)
Maurizio
--------
?SPQR(C)
 X
--------