Avatar billede sarben Nybegynder
06. oktober 2008 - 15:19 Der er 2 kommentarer

Kontoller om Csv dilen er blivet opdateret.

Jeg har en plc der tester et emne og genererer et csv fil hver gang den er færdig med en test. Csv filen bliver lagt i samme mappe hver gang. Filen hedder et serienummer bestående af fire cifre, f.eks. 2563, 3562, 1235, osv.... Hvordan kan jeg få Excel til at tjekke om der er kommet et nyt csv fil hvert 10. sekund Det er altså den csv fil der er blevet genereret sidst, som jeg skal bruge. Serienummerere er IKKE kronologiske og serienummer kan optræde igen.

Kortsagt skal koden gå ind i mappen hver 10. sekund og se om der kommet en ny fil. Det skal ikke være baseret på serienummer, men på dato og klokkeslæt. 

Tak på forhånd
Jeg håber at du kan hjælpe mig med opgaven.

Mvh
Sarben
Avatar billede nissen2630 Novice
15. oktober 2008 - 08:01 #1
Her er lidt kode du kan rode med

Mvh Jesper

--------------- kode start ---------------
Public counter As Integer      'My counter for the example
Public StopTimer As Boolean    'The flag to stop the timer

Public lastfilename As String
Public lastfileupdate As Date      'Date for last fileupdate


Private Sub CommandButton1_Click()
  Timer_Start
End Sub

Private Sub CommandButton2_Click()
  Timer_Stop
End Sub

Private Sub CommandButton3_Click()
 
  Dim fDate As Date
 
  mypath = "c:\temp\*.gif"    ' Set the path.
  myname = Dir(mypath)
  Do While myname <> ""
    fDate = FileDateTime("c:\temp\" + myname)
    If Format(fDate, "dd,mm,yy hh:mm:ss") > lastfileupdate Then
      lastfileupdate = fDate
      lastfilename = "c:\temp\" + myname
      Ark1.Cells(1, 1) = lastfilename ' kun for at virke at det virker :-)
    End If
    myname = Dir
  Loop
End Sub

Public Sub Timer_Start()
    Timer_Tick
End Sub

Public Sub Timer_Tick()

  If StopTimer = True Then            'Exit if the timer is stopped
    StopTimer = False
    Exit Sub
  End If

  Call Timer_Kode        'Køre timer koden
  ' Kalder sig selv om 10 sek
  Application.OnTime Now() + CDate(Format("00:00:10", "hh:mm:ss")), "Ark1.Timer_Tick"

End Sub

Public Sub Timer_Kode()
    Call CommandButton3_Click

    MsgBox "testtimer" ' Din kode
    DoEvents
End Sub

Public Sub Timer_Stop()
  StopTimer = True
  Application.OnTime 0, "Ark1.Timer_Tick", False
End Sub
----------- kode slut ----------
Avatar billede nissen2630 Novice
15. oktober 2008 - 08:09 #2
Glemte lige at skrive at du skal huske at stoppe timeren og at dette eksempel kun virker på ark1 i dette tilfælde
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester