Avatar billede sarben Nybegynder
19. september 2008 - 15:00 Der er 5 kommentarer

En tæller/timer der automatisk tjekker nogle koloneres indhold.

Hej

Jeg har et excel ark, som er kobbelet til en PLC server. I koloner H16 til H42 skal der stå OK, men nogle gange står der Fejl. Jeg vil gerne en kode der kan går ind hvert 10. sekund og tjekke om der står fejl i en af disse koloner. Er der nogen der kan hjælpe?
Sagen er at jeg flere userforms kørende samtidigt. Hvordan kan jeg få en tælle der står og kigge på kolonerne H16 til H42 uanset hvor jeg er i programmet?

Mvh
Sarben
Avatar billede kabbak Professor
19. september 2008 - 16:59 #1
Lav en knap, i en af dine userforms, brug den til at starte og stoppe koden

denne i et module, ikke userforms, ark eller thisworkbook moduler

Option Explicit
Dim TjekTime As Date

Public Sub Tjek_OK()
    Dim Data As Variant, I As Integer
    Data = Worksheets("Ark1").Range("H16:H42")
    For I = 1 To UBound(Data)
        If Data(I, 1) <> "OK" Then
            MsgBox "Der mangler OK i celle(H" & I + 16 & ")"
            Exit For
        End If
    Next
    TjekTime = Now() + TimeSerial(0, 0, 10)
Application.OnTime TjekTime, "Tjek_OK"
End Sub

Public Sub StartTjek()
TjekTime = Now() + TimeSerial(0, 0, 10)
Application.OnTime Now(), "Tjek_OK"
End Sub
Public Sub StopTjek()
Application.OnTime TjekTime, "Tjek_OK", , False
End Sub
Avatar billede kabbak Professor
19. september 2008 - 21:12 #2
Du kan nøjes med disse 2, start med Tjek_OK og slut med StopTjek


Option Explicit
Dim TjekTime As Date

Public Sub Tjek_OK()
    Dim Data As Variant, I As Integer
    Data = Worksheets("Ark1").Range("H16:H42")
    For I = 1 To UBound(Data)
        If Data(I, 1) <> "OK" Then
            MsgBox "Der mangler OK i celle(H" & I + 16 & ")"
            Exit For
        End If
    Next
    TjekTime = Now() + TimeSerial(0, 0, 10)
Application.OnTime TjekTime, "Tjek_OK"
End Sub


Public Sub StopTjek()
Application.OnTime TjekTime, "Tjek_OK", , False
End Sub
Avatar billede sarben Nybegynder
20. september 2008 - 11:04 #3
Tak for hjælpen. Jeg vil teste programmet på mandag. Hvordan kan jeg gøre således at tjek starter automatisk når jeg åbner excel arket?

mvh
sarben
Avatar billede kabbak Professor
20. september 2008 - 15:07 #4
Du mener excel mappen ikk ??
sæt denne i samme modul

Public Sub Auto_Open()
call Tjek_OK
end sub
Avatar billede sarben Nybegynder
22. september 2008 - 10:35 #5
Hej kabbak

Tak for hjælp.

Et andet spørgsmål:

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 og kopiere serienummeret til en textbox i userformet? Det er altså den csv fil der er blevet genert sidst, som jeg skal have kopieret til userform. Serienummererene er IKKE kronologiske.

Jeg håber at du kan hjælpe mig med opgaven.

Mvh
Sarben
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