Ma questo
Set exApp = New Excel.Application
exApp.Visible = True
a cosa ti serve?
P.S. In effetti il codice non e' ... facilmente leggibile ... spiega un po' cosa fa nelle varie parti ...
Ma questo
Set exApp = New Excel.Application
exApp.Visible = True
a cosa ti serve?
P.S. In effetti il codice non e' ... facilmente leggibile ... spiega un po' cosa fa nelle varie parti ...
Non so esattamente, ma credo carichi delle DLL per l'audio
Setto l'intervallo del timer e il background del label1codice:Const SND_ASYNC = &H1 Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long Public loop_audio As Integer
codice:Private Sub Form_Load() Timer1.Interval = 1000 ' Imposta l'intervallo. Label1.BackColor = vbBlack End Sub
Da qui forse è meglio leggere le note
codice:Private Sub Timer1_Timer() ' prende l'ora di ultima modifica del file XLS Dim fs, f, s Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFile("C:\prova.xls") lastmodification = f.DateLastModified 'prende l'ora di ultima visualizzazione dal TXT Dim libero As String libero = FreeFile Dim lastview As String Open "CheckUpdateDate.txt" For Input As libero Do While Not EOF(libero) Line Input #libero, lastview Loop Close #libero 'controlla se l'ora di ultima visualizzazione sia predecente/antecedente all'ora di ultima modifica If lastmodification > lastview Then Label1.BackColor = vbRed sndPlaySound ("c:windows\media\Windows XP - Batteria in esaurimento.wav"), SND_ASYNC Else Label1.BackColor = vbBlack End If End Sub ' Creo un tasto che mi apre il file XLS e contemporaneamente mette la data di visualizzazione in un file TXT che serve per il controllo temporizzato Private Sub Command1_Click() Label1.BackColor = vbBlack Dim exApp As Excel.Application Dim exWb As Excel.Workbook Dim exWs As Excel.Worksheet Dim numRighe As Integer Dim indRiga As Integer 'apre excel Set exApp = New Excel.Application exApp.Visible = True 'apre il file xls strperc = "C:\prova.xls" Set exWb = exApp.Workbooks.Open(strperc) 'prende la data di sistema Dim mytime As String Dim mydate As String mytime = Time + Date ' scrive in un file di TXT l'ora di ultima visualizzazione del file, se il file non esiste lo crea Dim fso, txtfile Set fso = CreateObject("Scripting.FileSystemObject") Set txtfile = fso.CreateTextFile("CheckUpdateDate.txt", True) ' Scrive una riga con un carattere di nuova riga. txtfile.WriteLine (mytime) txtfile.Close End Sub
Spero si legga meglio![]()
Non mi hai risposto ...
Tutto questo
Dim exApp As Excel.Application
Dim exWb As Excel.Workbook
Dim exWs As Excel.Worksheet
Dim numRighe As Integer
Dim indRiga As Integer
'apre excel
Set exApp = New Excel.Application
exApp.Visible = True
a cosa ti serve??
alcune variabili forse non servono più, il resto è per aprire il file XLS dal tasto command_click.
E' una procedura superflua per aprire il file?
Lo devi dire tu ... ti serve gestire il contenuto del file excel da vb? Se no, quel codice non serve assolutamente ...
gestire il file si, ma non so se il codice così come è scritto è necessario, non conoscendo VB sto prendendo farti di codice e li assemblo cercando di venirne a capo, ma è facile che scriva cose inutili e non me ne rendo conto.
Comunque, trovato nulla che giustifica il fatto che il programma mi segnala l'aggiornamento anche se apro il file senza modificarlo?
Sì ! Proprio quel codice che ti ho detto !
Riscrivi il codice eliminando quelle linee inutili e mostralo, formattato ordinatamente e chiaramente ...
scusa ma non capisco![]()
quel codice è sotto command_click quindi durante l'esecuzione del programma se non clicco sul tasto non viene eseguito. Come fà ad incidere?
ho comunque provato e non funziona lo stesso, quando apro il file (non dal programma) mi dice che è stato aggiornato.
Credo comunque (dall'alto della mia ignoranza) che il problema non sia sul programma, ma sul file XLS, perchè come dicevo alcuni post fà, escludendo il programma, quando apro l'XLS le proprietà cambiano
es:
File chiuso
Data modifica 07/07/07 11.45.00
Data ultimo accesso 07/07/07 11.57.00
Apro il file senza modificarlo
Data modifica 07/07/07 11.58.05 (perchè?)
Data ultimo accesso 07/07/07 11.58.07
Richiudo il file
Data modifica 07/07/07 11.45.00 (torna quella reale)
Data ultimo accesso 07/07/07 11.58.07
Ma se così fosse non posso fare questo programma, almeno non come credevo io e mi sembra difficile che non ci sia un modo per risolvere o aggirare il problema![]()
Mi levi la curiosita' di come apri il file (non dal programma ok ... ma come lo apri? Cosa fai? Esistono delle macro nel file excel che partono automaticamente?)
no è solo un file XLS che apro con il doppio click e che contiene solo caratteri a caso che uso per controllare la data di modifica