Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Realme 15 Pro Game Of Thrones: un vero cimelio tech per pochi eletti
Recensione Realme 15 Pro Game Of Thrones: un vero cimelio tech per pochi eletti
Siamo volati fino a Belfast, capitale dell'Irlanda Del Nord, per scoprire il nuovo Realme 15 Pro 5G Game Of Thrones Limited Edition. Una partnership coi fiocchi, quella tra Realme e HBO, un esercizio di stile davvero ben riuscito. Ma vi raccontiamo tutto nel nostro articolo
GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Laptop insieme per giocare al giusto prezzo
GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Laptop insieme per giocare al giusto prezzo
Il Gigabyte Gaming A16 offre un buon equilibrio tra prestazioni e prezzo: con Core i7-13620H e RTX 5060 Laptop garantisce gaming fluido in Full HD/1440p e supporto DLSS 4. Display 165 Hz reattivo, buona autonomia e raffreddamento efficace; peccano però le USB e la qualità cromatica del pannello. Prezzo: circa 1200€.
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
C'è tanta sostanza nel nuovo smartphone della Mela dedicato ai creator digitali. Nuovo telaio in alluminio, sistema di raffreddamento vapor chamber e tre fotocamere da 48 megapixel: non è un semplice smartphone, ma uno studio di produzione digitale on-the-go
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-11-2008, 14:58   #1
Spike79
Senior Member
 
L'Avatar di Spike79
 
Iscritto dal: Aug 2004
Città: Provincia di Monza e Brianza
Messaggi: 6261
[VB6] Attendere Excel

Ciao, sto sviluppando con VB6 un'applicazione che crea e popola dei fogli XLS, e fin qui, tutto ok....vorrei però fare in modo che l'utente possa decidere di aprire il file XLS prodotto in Excel, modificarlo, salvarlo, chiuderlo mentre la mia applicazione "attende" in background che finisca queste operazioni e intervenga solo alla chiusura del foglio Excel....è fattibile ?

Altra domanda, mi trovo sempre un processo Excel.exe appeso alla chiusura del mio programma, eppure ogni variabile Excel.Application la setto = nothing!
__________________
AMD Ryzen 5 7600X - Dissipatore Thermalright Assassin King 120SE - RAM Kingston Fury Beast 2x16Gb DDR5 CL30 @ 6000 - Motherboard ASROCK B650 Pro RS - NVME Kingston KC3000 2Tb - PSU FSP Hydro PRO 600w - Win 11 PRO
Spike79 è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2008, 09:24   #2
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da Spike79 Guarda i messaggi
Ciao, sto sviluppando con VB6 un'applicazione che crea e popola dei fogli XLS, e fin qui, tutto ok....vorrei però fare in modo che l'utente possa decidere di aprire il file XLS prodotto in Excel, modificarlo, salvarlo, chiuderlo mentre la mia applicazione "attende" in background che finisca queste operazioni e intervenga solo alla chiusura del foglio Excel....è fattibile ?
Cioè hai un ciclo che crea diversi Xls in sequenza, e dopo averne compilato uno, lo lascia aperto in attesa delle eventuali modifiche dell'utente. Se l'utente lo chiude ( salvando o meno le modifiche ) il ciclo continua...
Così ?

Quote:
Originariamente inviato da Spike79 Guarda i messaggi
Altra domanda, mi trovo sempre un processo Excel.exe appeso alla chiusura del mio programma, eppure ogni variabile Excel.Application la setto = nothing!
C'è sicuramente un errore occulto nel tuo codice. Forse apri n istanze, e ne rimane sempre una orfana. Difficile saperlo se non posti il codice.
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 19-11-2008, 17:22   #3
Spike79
Senior Member
 
L'Avatar di Spike79
 
Iscritto dal: Aug 2004
Città: Provincia di Monza e Brianza
Messaggi: 6261
Beh , più o meno....diciamo, apro un file TXT , leggo dei valori, faccio dei conti, apro un XLS e li inserisco in uno sheet (in caselle precise), chiudo sheet e xls e salvo.
Nel ciclo di lettura può succedere di aprire di nuovo l'xls e creare nuovi sheets.
Io vorrei che al termine del TXT, ossia alla fine della lettura e di tutti i vari salvataggi, l'utente possa confermare di voler modificare il file XLS prodotto, il mio programma dovrà aprire l'xls e 'attendere' che l'utente faccia le sue modifiche, in seguito a ciò (ossia quando l'utente chiuderà Excel), il programma dovrà riprendere il controllo per fare ulteriori calcoli sul file XLS modificato.

Riguardo gli orfani, è probabile, dovrò ricontrollare tutto.
__________________
AMD Ryzen 5 7600X - Dissipatore Thermalright Assassin King 120SE - RAM Kingston Fury Beast 2x16Gb DDR5 CL30 @ 6000 - Motherboard ASROCK B650 Pro RS - NVME Kingston KC3000 2Tb - PSU FSP Hydro PRO 600w - Win 11 PRO
Spike79 è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2008, 09:44   #4
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Io proverei a semplificare il tutto aprendo direttamente il file xls in una Form VB6. In questo modo si può risparmiare molto codice ed evitare i fastidi e gli errori di un continuo dialogo tra VB6 ed Excel...
Dai un'occhiata a questo componente :
Microsoft Office Web Components 11.0

10.0 > Office XP
11.0 > Office 2003 ecc...

La DLL è :
C:\Programmi\File comuni\Microsoft Shared\Web Components\11\OWC11.DLL

A dispetto del nome "Web" è perfetto per le WinForms, e una volta importato aggiunge vari controlli alla ToolBar, tra cui lo "Spreadsheet".

Gestire lo Spreadsheet via codice è semplicissimo :

Codice:
    Dim percorso As String
    percorso = App.Path & "\"
    
    'Carico un workbook:
    Spreadsheet1.XMLURL = percorso & "PROVA.xls"
    
    'Inserisco valori:
    Spreadsheet1.Sheets("Foglio1").Range("A1") = "PROVA1"
    Spreadsheet1.Sheets("Foglio2").Range("A1") = "PROVA2"
    Spreadsheet1.Sheets("Foglio3").Range("A1") = "PROVA3"
    
    'Salvo il workbook:
    Spreadsheet1.Export percorso & "PROVA.xls", ssExportActionNone, ssExportAsAppropriate
A questo punto l'utente potrebbe modificare il workbook direttamente dalla Form, e fare Click su un pulsante, confermando che ha finito di apportare le modifiche... problema risolto.
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2008, 10:09   #5
Spike79
Senior Member
 
L'Avatar di Spike79
 
Iscritto dal: Aug 2004
Città: Provincia di Monza e Brianza
Messaggi: 6261
Fantastico, appena ci rimetto sopra le mani mi ci fiondo....però una domanda mi sorge spontanea...e per distribuirlo ? Se l'utente ha Office 2007 o Office 2003 o addirittura Office 2000, può succedere qualcosa ?
__________________
AMD Ryzen 5 7600X - Dissipatore Thermalright Assassin King 120SE - RAM Kingston Fury Beast 2x16Gb DDR5 CL30 @ 6000 - Motherboard ASROCK B650 Pro RS - NVME Kingston KC3000 2Tb - PSU FSP Hydro PRO 600w - Win 11 PRO
Spike79 è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2008, 10:29   #6
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da Spike79 Guarda i messaggi
Fantastico, appena ci rimetto sopra le mani mi ci fiondo....però una domanda mi sorge spontanea...e per distribuirlo ? Se l'utente ha Office 2007 o Office 2003 o addirittura Office 2000, può succedere qualcosa ?
Se prevedi di distribuirlo per tutte le versioni di Office, è possibile che ad esempio OWC11.DLL, distribuito con il programma, gestisca anche i file excel di tutte le versioni precedenti alla 2003.
Penso proprio che sia così, anche se non te lo posso "giurare".
Per Excel 2007 il discorso è diverso, perchè lì cambia proprio il formato del file. Sarà necessario avere OWC12.DLL.

La cosa migliore ? Anzichè smazzarsi un'unica gestione centralizzata di TUTTE le versioni di Office, meglio accordarsi col cliente su quale sia la sua, e fare diverse versioni del programma...

E comunque, meglio evitare Office '97 e precedenti !
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2008, 10:47   #7
Spike79
Senior Member
 
L'Avatar di Spike79
 
Iscritto dal: Aug 2004
Città: Provincia di Monza e Brianza
Messaggi: 6261
Uhm...sto provando ma non riesco a fargli caricare il mio foglio, dice che non è un foglio dati XML....eppure è un banale XLS...
__________________
AMD Ryzen 5 7600X - Dissipatore Thermalright Assassin King 120SE - RAM Kingston Fury Beast 2x16Gb DDR5 CL30 @ 6000 - Motherboard ASROCK B650 Pro RS - NVME Kingston KC3000 2Tb - PSU FSP Hydro PRO 600w - Win 11 PRO
Spike79 è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2008, 14:02   #8
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da Spike79 Guarda i messaggi
Uhm...sto provando ma non riesco a fargli caricare il mio foglio, dice che non è un foglio dati XML....eppure è un banale XLS...
Usi Office 2007 per caso ? A me con Excel 2003 ( OWC11.DLL ) funziona normalmente...
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 20-11-2008, 14:34   #9
Spike79
Senior Member
 
L'Avatar di Spike79
 
Iscritto dal: Aug 2004
Città: Provincia di Monza e Brianza
Messaggi: 6261
No, Office 2003, e appena apro il mio file, col comando che mi hai dato (Spreadsheet1.XMLURL = percorso & "PROVA.xls"), si incricca e dà quell'errore.

"Il documento non è un file XML corretto"
__________________
AMD Ryzen 5 7600X - Dissipatore Thermalright Assassin King 120SE - RAM Kingston Fury Beast 2x16Gb DDR5 CL30 @ 6000 - Motherboard ASROCK B650 Pro RS - NVME Kingston KC3000 2Tb - PSU FSP Hydro PRO 600w - Win 11 PRO
Spike79 è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2008, 09:13   #10
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da Spike79 Guarda i messaggi
No, Office 2003, e appena apro il mio file, col comando che mi hai dato (Spreadsheet1.XMLURL = percorso & "PROVA.xls"), si incricca e dà quell'errore.

"Il documento non è un file XML corretto"
Purtroppo temo sia il limite del controllo ( non mi dava errore perchè nella mia prova salvavo come "foglio di calcolo XML" pur mantenendo l'estensione "xls" ).
Se, come penso, non ti va di convertire i tuoi books xls in fogli di calcolo Xml ( manterresti i dati e la suddivisione in fogli, ma eventuali formule e macro andrebbero perse ), rimane l'embedding tramite OLE Container ( da provare, anche se personalmente non è che mi faccia impazzire... ), oppure tornare a gestire Excel da VB6, ma senza vedere un esempio del tuo codice non sono in grado...
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2008, 10:54   #11
Spike79
Senior Member
 
L'Avatar di Spike79
 
Iscritto dal: Aug 2004
Città: Provincia di Monza e Brianza
Messaggi: 6261
Gentilissimo, grazie.

Allora, il programma potrebbe anche salvare in XML (mantenendo XLS come estensione), tanto il file lo creo/salvo IO partendo da una base fissa vuota (popolo dei fogli, e salvo con un altro nome)....proverò anche questa strada.
__________________
AMD Ryzen 5 7600X - Dissipatore Thermalright Assassin King 120SE - RAM Kingston Fury Beast 2x16Gb DDR5 CL30 @ 6000 - Motherboard ASROCK B650 Pro RS - NVME Kingston KC3000 2Tb - PSU FSP Hydro PRO 600w - Win 11 PRO
Spike79 è offline   Rispondi citando il messaggio o parte di esso
Old 21-11-2008, 12:55   #12
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da Spike79 Guarda i messaggi
Gentilissimo, grazie.

Allora, il programma potrebbe anche salvare in XML (mantenendo XLS come estensione), tanto il file lo creo/salvo IO partendo da una base fissa vuota (popolo dei fogli, e salvo con un altro nome)....proverò anche questa strada.
Perfetto allora.
Puoi usare tranquillamente il controllo SpreadSheet, come ti avevo suggerito.
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione Realme 15 Pro Game Of Thrones: un vero cimelio tech per pochi eletti Recensione Realme 15 Pro Game Of Thrones: un ver...
GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Laptop insieme per giocare al giusto prezzo GIGABYTE GAMING A16, Raptor Lake e RTX 5060 Lapt...
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
Impulse Space svilupperà un lande...
I 2 mini aspirapolvere più potent...
The Crew 2 diventa finalmente giocabile ...
Sta succedendo davvero: Assetto Corsa Ra...
I 5 smartphone più scontati su Amazon: m...
Disponibilità OxygenOS 16: ecco q...
OxygenOS 16 ufficiale: tutte le novit&ag...
Nio sotto pressione: azioni crollano dop...
Spotify collaborerà con le major ...
Ingegneria Dei Sistemi svilupperà...
La gamma di iPhone sarà sempre pi...
Alla guida di nuova Alfa Romeo Tonale pl...
9 articoli su Amazon senza rivali, aggio...
HONOR svela il nuovo Watch 5 Pro e le cu...
MacBook Air 15'' con chip M4 in super of...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 10:57.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v