Rufati Skrevet 14. oktober 2004 Del Skrevet 14. oktober 2004 Case: Et regneark som jeg skriver og som andre har tilgang til å lese via nettverk. Det er en arbeidsoversikt for ansatte. Når dette regnearket blir åpnet av andre i nettverket vil jeg at det skal oppdatere seg selv jevnlig, slik at tilføyde arbeidsoppgaver kommer frem. Altså, som jeg har skrevet til filen i tiden etter at den ble åpnet. Slik vil jeg at ansatte skal slippe å lukke og åpne excel hele tiden. Grunnen til at jeg skriver her er fordi når jeg vil prøve å skrive en macro for dette, havner jeg i VB, som jeg ærlig talt kan ingenting om. Kan noen gi forslag, og evnt. kan lage en slik (enkel?) macro? Takk. Lenke til kommentar
Jonas Skrevet 15. oktober 2004 Del Skrevet 15. oktober 2004 (endret) *bump* thihi, posten lå jo øverst i listen Hvordan du skal kunne lukke excel og åpne på nytt vet jeg ikke, men her er en kode for å sjekke om filen er blitt endret: Dim Path As String Dim Buff As String Private Sub Form_Load() Path = "C:\htmfil.htm" Timer1.Interval = 1000 Timer1.Enabled = True Buff = LoadFile(Path) End Sub Private Sub Timer1_Timer() If Not Buff = LoadFile(Path) Then MsgBox "Filen har endret seg!", vbInformation, "Excel" Buff = LoadFile(Path) End If End Sub Public Function LoadFile(filename1 As String) As String If Dir(filename1) = "" Then GoTo feil Open filename1 For Binary As #1 LoadFile = Input(FileLen(filename1), #1) Close #1 feil: End Function Edit: Eneste du trenger er å legge til en timer. Endret 15. oktober 2004 av Jonas Lenke til kommentar
aadnk Skrevet 15. oktober 2004 Del Skrevet 15. oktober 2004 Hvis det er relativt store filer det er snakk om, eller du ønsker å spare nett-trafikk, kan du heller sjekke om den relevante filen har en nye redigerings-dato (Date modified): Option Explicit Private Declare Function GetFileTime Lib "kernel32" (ByVal hFile As Long, lpCreationTime As Currency, lpLastAccessTime As Currency, lpLastWriteTime As Currency) As Long Private Declare Function OpenFile Lib "kernel32" (ByVal lpFileName As String, lpReOpenBuff As OFSTRUCT, ByVal wStyle As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Const OFS_MAXPATHNAME = 128 Const OF_READ = &H0 Private Type OFSTRUCT cBytes As Byte fFixedDisk As Byte nErrCode As Integer Reserved1 As Integer Reserved2 As Integer szPathName(OFS_MAXPATHNAME) As Byte End Type Dim Path As String Dim LastTime As Currency Private Sub Form_Load() Path = "C:\Test.txt" LastTime = FileTime(Path) Timer1.Interval = 1000 Timer1.Enabled = True End Sub Private Sub Timer1_Timer() If LastTime <> FileTime(Path) Then MsgBox "Filen har endret seg!", vbInformation, "Excel" LastTime = FileTime(Path) ' # Todo: Legg inn kode for å åpne filen på nytt her # End If End Sub Public Function FileTime(sFile As String) As Currency Dim hFile As Long, cAccess As Currency Dim OF As OFSTRUCT, cCreate As Currency hFile = OpenFile(sFile, OF, OF_READ) GetFileTime hFile, cAccess, cCreate, FileTime CloseHandle hFile End Function Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå