Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Macro automatisch runnen op bepaald tijdstip  (gelezen 1512 keer)

0 leden en 1 gast bekijken dit topic.

Offline Mart1

  • Lid
  • *
  • Berichten: 10
  • Geslacht: Man
  • Hey, ik ben nieuw hier !
Macro automatisch runnen op bepaald tijdstip
« Gepost op: 29 november 2021, 12:48:27 »
Hoi allemaal,

Ik ben bezig met een macro te schrijven en ik wil deze automatisch laten draaien om 23:00 vanaf vandaag. Ik ben nog niet zo bekend met het gebruik van VBA. Hieronder de macro die ik heb, echter runt die deze niet op het gekozen tijdstip. Kan iemand mij hierbij helpen? Alvast bedankt!

Gr. Mart1

Private Sub Workbook_Open()
Application.OnTime TimeValue("23:00:00"), "MyMacro"                 'Runs a macro at 23:00
End Sub
Sub MyMacro()
Range("B58:T107").Select
Selection.Copy
Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("W58:Y63").Select
Application.CutCopyMode = False
Selection.Copy
Range("W3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=39
Range("B113:T162").Select
Application.CutCopyMode = False
Selection.Copy
Range("B58").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("W113:Y118").Select
Application.CutCopyMode = False
Selection.Copy
Range("W58").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=63
Range("B168:T217").Select
Application.CutCopyMode = False
Selection.Copy
Range("B113").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("W168:Y173").Select
Application.CutCopyMode = False
Selection.Copy
Range("W113").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub


Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Macro automatisch runnen op bepaald tijdstip
« Reactie #1 Gepost op: 29 november 2021, 13:48:14 »
Hallo Mart1,

De macro:
Private Sub Workbook_Open()
Application.OnTime TimeValue("23:00:00"), "MyMacro"                 'Runs a macro at 23:00
End Sub
voert enkel de taken uit als je het werkboek opent.
Vraag is dus wat je precies wilt?
Ga je het werkboek openen vóór 23h en dan de acties van Sub MyMacro() laten uitvoeren om 23 h?
Het werkboek gaat niet automatisch openen om (of voor) 23h, daar zal je een ander programma voor moeten gebruiken.
Mogelijk dat je dat kan in Windows Task Manager.

Je code in Sub MyMacro () kan je enorm vereenvoudigen.
Je hebt deze opgenomen met de macrorecorder, maar deze recorder slaat ook alles op   :(

Deze code zou identiek hetzelfde doen als die van jou:

Sub MyMacro()
Range("B58:T107").Copy Destination:=Range("B3")
Range("W58:Y63").Copy Destination:=Range("W3")
Range("B113:Y118").Copy Destination:=Range("B58")
Range("B168:T217").Copy Destination:=Range("B113")
Range("W168:Y173").Copy Destination:=Range ("W113")
End Sub


Groeten,

:) SoftAid :)             


Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline Mart1

  • Lid
  • *
  • Berichten: 10
  • Geslacht: Man
  • Hey, ik ben nieuw hier !
Re: Macro automatisch runnen op bepaald tijdstip
« Reactie #2 Gepost op: 29 november 2021, 14:20:03 »
Alvast bedankt SoftAid! Je vroeg het volgende: Vraag is dus wat je precies wilt? Ik wil wanneer ik 's ochtends het bestand open de regels gekopieerd zijn naar de juiste rijen. Dus wanneer ik hem 's ochtends open de macro uitgevoerd wordt. Echter wil ik niet dat als ik hem 's middags open de macro ook uitgevoerd wordt. De 23:00 is dus een richtlijn.

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Macro automatisch runnen op bepaald tijdstip
« Reactie #3 Gepost op: 29 november 2021, 14:53:28 »
Hallo Mart1,

Dan zal je moeten werken met "Voorwaarden" als je het werkboek opent.
Iets in de aard van:

Private Sub Workbook_Open()                          ' deze macro moet in ThisWorkbook staan
If Time > ("22:00:00") Then              'met deze instelling wordt de macro gestart als "het ogenblik
                                                       'van het openen van het werkboek" tussen 22 h en 24 h ligt.
run ("MyMacro")             
Else Exit Sub
end if             
End Sub

Dat houd in dat je het werkboek niet mag openen voor 22:00 h, anders wordt de macro Sub MyMacro() niet uitgevoerd.
Je kan hier dus beter een vroeger uur invullen. Deze laatste macro zet je in een module.

:) SoftAid :)             

Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline Mart1

  • Lid
  • *
  • Berichten: 10
  • Geslacht: Man
  • Hey, ik ben nieuw hier !
Re: Macro automatisch runnen op bepaald tijdstip
« Reactie #4 Gepost op: 29 november 2021, 16:00:20 »
Ik heb de eerste macro in ThisWorkbook gezet en de tweede macro in Module 1. Wanneer ik de tweede macro handmatig "run" dan doet deze het wel alleen in combinatie met de eerste dan gebeurt er niets. Zie ik iets over het hoofd (instellingen)?

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Macro automatisch runnen op bepaald tijdstip
« Reactie #5 Gepost op: 29 november 2021, 16:08:59 »
Hallo Mart,

Mijn fout  :-[

Vervang Now eens door Time in de Werkboek-macro.

If Time > ("22:00:00") Then 
Sorry, ik had het reeds aangepast in mijn vorig bericht, maar dat zal je niet opgemerkt hebben.

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline Mart1

  • Lid
  • *
  • Berichten: 10
  • Geslacht: Man
  • Hey, ik ben nieuw hier !
Re: Macro automatisch runnen op bepaald tijdstip
« Reactie #6 Gepost op: 29 november 2021, 16:23:57 »
Sorry, dat had ik inderdaad niet opgemerkt. Maar nu werkt het! Hartstikke bedankt!

Mart1

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Macro automatisch runnen op bepaald tijdstip
« Reactie #7 Gepost op: 29 november 2021, 16:30:48 »
Fijn dat het werkt, en dank voor het melden  :thumbsup:  :) :)

Groetjes,

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline Mart1

  • Lid
  • *
  • Berichten: 10
  • Geslacht: Man
  • Hey, ik ben nieuw hier !
Re: Macro automatisch runnen op bepaald tijdstip
« Reactie #8 Gepost op: 29 november 2021, 16:39:50 »
Nog een laatste vraag, het is zegmaar voor een schoolopdracht alleen werken we met 3 personen in hetzelfde bestand. Hoe zet je in de macro dat die maar 1x tussen de twee tijden de macro uitvoert?

Sorry voor de vele vragen, maar we komen er niet uit :(

Mart 1

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Macro automatisch runnen op bepaald tijdstip
« Reactie #9 Gepost op: 29 november 2021, 17:29:00 »
Hallo Mart1,

normaal lossen we geen schooltaken op....  ;D

Dit gezegd zijnde, wat gebeurt er als je de macro ( Workbook_open) een tweede keer uitvoert?
Ik weet niets van de inhoud van je werkblad, en hoeveel andere cellen er afhankelijk van zijn.

De gemakkelijkste weg zou zijn om ergens een cel (XX1  0:-)) een waarde 1 of 0 te geven via die macro .
Standaard een 0.
Een 1 als de macro, binnen de periode 22:00 - 24:00 wordt uitgevoerd.
Kijken of de cel 1 of 0 is bij het begin van de macro
Als de cel 1 is, de macro niet uitvoeren. (Exit Sub)
Als de cel 0 is, de macro wel uitvoeren.

Kan je hier iets mee?

Ik hoor het graag  \o/

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Macro automatisch runnen op bepaald tijdstip
« Reactie #10 Gepost op: 29 november 2021, 17:38:22 »
Volgende aanpassing van de macro zou je op weg moeten zetten:

Private Sub Workbook_Open()
    If Range("A1") = 0 Then       'MyMacro is nog niet uitgevoerd
        If Time > ("15:57:00") Then
            Run ("MyMacro")
            Range("A1") = 1       'MyMacro is reeds uitgevoerd
        Else: Exit Sub
        End If
    End If
 End Sub

enkel moet je cel A1 nog resetten naar 0 op een door jou bepaald uur, bijvoorbeeld 02:00:00
Daar zal je "ergens" opnieuw een voorwaarde voor moeten inbouwen:
If Time > ("02:00:00") and < ("22:00:00") then Range("A1") = 0
Laat eens weten hoever je staat.

:) SoftAid :)             

Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline JEC

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 422
Re: Macro automatisch runnen op bepaald tijdstip
« Reactie #11 Gepost op: 29 november 2021, 19:12:42 »
Waarom zet je het niet achter een normale macro.

Iemand van de 3 ververst het bestand in de ochtend, waarna de datum van verversen in een cel wordt gezet. Door vervolgens nog een keer te verversen krijg je een melding dat dit al is gebeurd. Het gebruik van Workbook_open events met meerdere gebruikers vraagt om problemen.

Sub jec()
 If Cells(1, 1).Value = Date Then MsgBox "Bestand is al ververst", vbOKOnly, "let op": Exit Sub
 Cells(1, 5).Value = "test"
 Cells(1, 1).Value = Date
End Sub

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Macro automatisch runnen op bepaald tijdstip
« Reactie #12 Gepost op: 29 november 2021, 20:30:12 »
Hallo Jim,

dank om er even in te duiken  ;D

Wat je schrijft is toch ongeveer hetzelfde als wat ik voorstelde, zij het op een andere manier.

Maar zoals ik al schreef aan TS, we helpen normaal niet met schoolopdrachten, dus van het moment dat ik wist dat het voor school is vond ik het beter dat ze, TS en kameraden, zelf enkele stappen doen. Op die manier leren ze dan toch nog iets zelf.

Wat denk je?

Groeten,

:) SoftAid :)             


Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline JEC

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 422
Re: Macro automatisch runnen op bepaald tijdstip
« Reactie #13 Gepost op: 29 november 2021, 20:36:44 »
Zeker! Het is ook maar een simpel voorbeeldje en geen voorgekauwde code ;)

Het komt inderdaad op hetzelfde neer. Alleen het workbook_open event in een gedeeld bestand (daarmee bedoel ik dat men tegelijk in het bestand kan), raad ik uit ervaring af. Laat het liefst 1 iemand de macro uitvoeren ipv het te laten bepalen door het "event".

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.128
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Macro automatisch runnen op bepaald tijdstip
« Reactie #14 Gepost op: 29 november 2021, 21:46:52 »
Zeker! Het is ook maar een simpel voorbeeldje en geen voorgekauwde code ;)
Het komt inderdaad op hetzelfde neer. Alleen het workbook_open event in een gedeeld bestand (daarmee bedoel ik dat men tegelijk in het bestand kan), raad ik uit ervaring af. Laat het liefst 1 iemand de macro uitvoeren ipv het te laten bepalen door het "event".
Hallo Jim,

Gelijk heb je. Maar het blijft een schooltaak, en mogelijk is het juist de opdracht dat ze er alle drie op moeten (kunnen) werken. Je weet het nooit....
Ik wacht nog maar even reacties af van TS, en dan zien we wel weer  ;)

Groeten, en goede avond nog.

:) SoftAid :)             

Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

 


www.combell.com