Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Excel e vb6
Forum - Visual Basic 6 - Excel e vb6

Avatar
nonabarth (Normal User)
Newbie


Messaggi: 2
Iscritto: 18/01/2010

Segnala al moderatore
Postato alle 22:00
Lunedì, 18/01/2010
Ciao a tutti!
Ho elaborato una piccola applicazione in Excel (file "pippo.xls") sfruttando il suo vba.
Per aprire il file pippo.xls mi son servita, x questioni puramente di estetica :), di vb6 elaborando queste 3 semplici linee in un file eseguibile (pippo.exe):
   Private Sub Form_Load()
   Dim ExcelApp As New Excel.Application
   ExcelApp.Workbooks.Open "C:\pippo.xls"
   Unload Me
   End Sub
    (solo per non vedere neanche per un nanosecondo l'apertura dell'applicazione a schermo :)
Clicco quindi sul mio pippo.exe e la mia applicazione parte.
Problema:
1) Essendo l'applicazione (excel) NON visibile se l'utente clicca, ad esempio, su "Mostra desktop" della barra di avvio veloce il form che viene richiamato da Workbook_Open() scompare.
2) Se riclicco su pippo.exe mi viene aperta un'ulteriore sessione di excel che ignora la già avvenuta apertura del mio file pippo.xls (con tutte le incongruenze successive del caso…)
Domanda: quale codice posso inserire in vb6 per impedire che lo stesso file venga aperto due volte?
Grazie a tutti!

PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 23:18
Lunedì, 18/01/2010
Nel Form_Load della form di avvio
Codice sorgente - presumibilmente VB.NET

  1. If App.PrevInstance Then
  2.         MsgBox (Forms(0).Caption & " è già in esecuzione"), vbCritical
  3.         Unload me
  4.     End If


Ciao

Ps: con Form(0) intendo la form che lanci per far partire il programma.

Ultima modifica effettuata da Alfonso il 18/01/2010 alle 23:20
PM Quote
Avatar
nonabarth (Normal User)
Newbie


Messaggi: 2
Iscritto: 18/01/2010

Segnala al moderatore
Postato alle 19:31
Martedì, 19/01/2010
Ciao Alfonso.
Il tuo App.PrevInstance mi ha salvato la vita!
Ho solo eliminato il richiamo della msgbox sostituendolo con ExcelApp.Workbooks(percorso.xls).Close
Se tento di aprire nuovamente l'applicazione mi appare un msg di errore e l'ulteriore sessione non viene aperta :)
Grazie grazie grazie !!

PM Quote