Avatar billede askims Nybegynder
24. september 2001 - 08:38 Der er 9 kommentarer og
1 løsning

Automatisering af makro

Hej

Hvorfor virker nedenstående makro ikke?

Det, den skulle gøre, var at køre makroen opdaterdimentioner kl. 5.30, men den skal kun gøre det i hverdagene (mandag - fredag). Det skal lige siges, at makroen er i et regneark, som er konstant er åben.

ASKIMS

Sub auto_open()
    Application.OnTime TimeValue_(\"05:30:00\"), \"startopdaterdim\"
End Sub


Sub startopdaterdim()
Dim dag As Variant
   
    tid.indsætstarttid

dag = WeekDay(Now())
    If dag = 1 Or dag = 7 Then
        Exit Sub
        Else
        Application.OnTime Now + TimeValue_(\"00.00.05\"), \"opdaterdimentioner\"
    End If
End Sub
Avatar billede askims Nybegynder
24. september 2001 - 08:41 #1
Det har lige sneget sig et tegn for meget ind i
application.ontime timevalue(\"05:30:00\"), der er altså ikke underscore medtaget i makroen!

ASKIMS
Avatar billede janvogt Praktikant
24. september 2001 - 08:47 #2
Din \"timer\" skal ikke ligge i Auto_Open.

Avatar billede janvogt Praktikant
24. september 2001 - 08:52 #3
Så køres makroen kun hver gang filen åbnes.

Sæt timeren i gang via en anden makro, når så timeren er sat, kan du roligt forlade computeren.

Du kan også sætte timeren i slutningen af din \"opdaterdimentioner\" så sættes den nye timer umiddelbart efter en første er kørt.
Avatar billede askims Nybegynder
24. september 2001 - 08:58 #4
Hvis jeg implementerer det sidste forslag vil jeg så ikke få problemer, når jeg kommer til lørdag og søndag?

ASKIMS
Avatar billede janvogt Praktikant
24. september 2001 - 09:09 #5
Du kunne jo lave et \"dag+1\" tjek som kun sætter den i gang hvis næste dag er en hverdag.
Avatar billede askims Nybegynder
24. september 2001 - 09:17 #6
Grunden til at jeg ikke har lavet det er at jeg skal være sikker på den også kører om mandagen.

Jeg har lavet lidt om i koden. Jan prøv lige og se om det var sådan noget lign., du mente.

Sub auto_open()
    startopdaterdim
End Sub

Sub startopdaterdim()
Dim dag As Variant
dag = WeekDay(Now())

    tid.indsætstarttid

    If dag = 1 Or dag = 7 Then
        Application.OnTime TimeValue(\"05:30:00\"), \"startopdaterdim\"
        Exit Sub
        Else
        Application.OnTime Now + TimeValue(\"00.00.05\"), \"opdaterdimentioner\"
    End If

Application.OnTime TimeValue(\"05:30:00\"), \"startopdaterdim\"
End Sub
Avatar billede janvogt Praktikant
24. september 2001 - 09:44 #7
Måske skulle du lægge lidt tidsforsænkning på, minimum de 5 sekunder, før du sætter timeren igen.
Uden at have tjekket det, skulle følgende kode vel så kunne gøre det:

Nytid = dag + 1
If Nytid = 7 Then
  Application.OnTime Now + TimeValue(\"72.00.00\"), \"opdaterdimentioner\"
Else Application.OnTime Now + TimeValue(\"24.00.00\"), \"opdaterdimentioner\"
End If

Altså, hvis næste dag er en lørdag skal der gå 72 timer inden makroen køres igen, ellers skal der kun gå 24 timer.
Avatar billede janvogt Praktikant
24. september 2001 - 09:50 #8
Sorry, den makro som skal køres er selvfølgelig \"startopdaterdim\".
Avatar billede janvogt Praktikant
02. oktober 2001 - 10:55 #9
>>> askims
Fik du makroen til at virke?
Avatar billede askims Nybegynder
08. oktober 2001 - 09:49 #10
>>> Jan

Jeg skulle lige se, om den kørte rigtig weekenden over, og det har jeg nu konstateret, at det gør den. Så mange tak for hjælpen.
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
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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