Avatar billede hubertus Seniormester
28. juli 2016 - 09:48 Der er 20 kommentarer og
1 løsning

tidsberegnng der driller

jeg skal validere om en forsendelse er kommet rettidigt. Det  burde være simpelt, men driller lidt. jeg benytter følgende kode, som er en del af et større sammenhæng.

Sub test1()
Call afvigelse(51)
End Sub

Sub afvigelse(antal_rækker)
Dim a, b, c As Date

    For i = 2 To antal_rækker
        a = Range("L" & i).Value  ' ankomst
        b = Range("H" & i).Value  ' sluttid
        c = Range("G" & i).Value  ' starttid
   
        If a < b And a > c Then 
          Range("m" & i) = 0    ' korrekt levering
        Else
        '  beregn tids afvigelse
        End If
           
    Next

End Sub

først udfordring:
Kolonerne med tider er formateret som timer:min.  Alle forsendelser som kommer rettidig eller efter slut tid registreres korekt, mens dem der ankommer før, bliver registreret som korrekte - hvilket jo ikke er tilfældet.
anden udfordring:
hvordan kan koden der beregner afvigelsen se ud.

ps. regneark med test data kan tilsendes.
Avatar billede hubertus Seniormester
28. juli 2016 - 10:14 #1
datafilen kan hentes på gratis upload
http://backup48.com/accounts/yJPM1Rns6b/2/index.html
Avatar billede bjarnehansen Seniormester
28. juli 2016 - 10:48 #2
prøv at sende dit ark til bjarne-hansen(at)mail.dk så kan vi se på det
Avatar billede supertekst Ekspert
28. juli 2016 - 11:11 #3
Sub afvigelse(antal_rækker)
Dim a As Date, b As Date, c As Date

    For i = 2 To antal_rækker
        a = Range("L" & i).Value  ' ankomst
        b = Range("H" & i).Value  ' sluttid
        c = Range("G" & i).Value  ' starttid
   
        If a < b And a > c Then  ' korrekt levering
          Range("m" & i) = 0
        Else
            If a < c Then
                Range("M" & i) = c - a
            Else
                Range("M" & i) = a - b
            End If
        End If
    Next

End Sub
Avatar billede hubertus Seniormester
28. juli 2016 - 11:16 #4
regnearket er sendt nu
Avatar billede hubertus Seniormester
28. juli 2016 - 11:38 #5
#3  hej
din kode ser logisk ud, men der regnes forkert i de tilfælde hvor levereringen sker før vinduet.  Tidsangivelsen i tilfældet af ikke rettidig levering angivet som decimaltal, mens korrekt levering angives som klokkeslet.
Har du lyst til at se på problemet, så sender jeg gerne arket.
Avatar billede supertekst Ekspert
28. juli 2016 - 11:55 #6
Hej Hubertus

Er filen ikke den der kan downloades?
Avatar billede hubertus Seniormester
28. juli 2016 - 12:11 #7
Hej Suprtekst - jo det er den.
Avatar billede supertekst Ekspert
28. juli 2016 - 13:11 #8
Ok -
Avatar billede supertekst Ekspert
28. juli 2016 - 13:14 #9
Iflg. det du skriver i #5, hvordan ønskes tidsangivelsen så?
Avatar billede hubertus Seniormester
28. juli 2016 - 13:27 #10
Tiden skal angives som hh:mm. ikke som decimaltal.
Avatar billede supertekst Ekspert
28. juli 2016 - 13:38 #11
Hvilken kolonne?
Avatar billede supertekst Ekspert
28. juli 2016 - 13:48 #12
Kan det have noget at gøre med #3 - anden række i VBA-koden?
Avatar billede hubertus Seniormester
28. juli 2016 - 14:20 #13
#11  angivelsen skal stå i col M (afvigelser.

#12  det kan være en mulighed, jeg har bare ikke et bedre bud.
Avatar billede supertekst Ekspert
28. juli 2016 - 14:31 #14
Kolonne M er formateret som Klokkeslæt i min version - prøv at se i din version
Avatar billede hubertus Seniormester
28. juli 2016 - 15:11 #15
Det er den også i min version. Jeg har derfor prøvet at oprette et nyt ark og så kopieret din kode ind, og så virker det. Det er bare lidt generende ikke at kende årsagen.
Avatar billede hubertus Seniormester
28. juli 2016 - 16:16 #16
Det ser ud til at virke upåklageligt nu, så jeg vil gerne sig mange tak for hjælpen.

mvh.
Hubertus.
Avatar billede supertekst Ekspert
28. juli 2016 - 17:05 #17
Selv tak - så kan du vel markere at der er fundet en løsning..
Avatar billede hubertus Seniormester
28. juli 2016 - 19:17 #18
Gerne det var jeg ikke opmærksom på, da jeg ikke har benyttet dette forum længe
Avatar billede hubertus Seniormester
28. juli 2016 - 19:18 #19
Men endnu engang tak for hjælpen.
Avatar billede hubertus Seniormester
28. juli 2016 - 19:22 #20
.
Avatar billede supertekst Ekspert
28. juli 2016 - 23:17 #21
Alt ok og tak..
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