• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Macro op bepaald tijdstip laten uitvoeren

Status
Niet open voor verdere reacties.

Khalid23

Gebruiker
Lid geworden
12 aug 2015
Berichten
48
hallo,

Ik heb een Macro gemakt die data uit het systeem haalt (SAP). Deze files worden opgeslagen in een folder. Verder worden deze bestanden verwerkt en vertaald naar rapportages voor het management. Zodra deze rapportages gemaakt zijn, worden deze automatisch verstuurd naar de aanvrager.

De Macro draai ik elke dag (handmatig).

Nu wil ik graag dat deze macro automatisch wordt gedraaid. Kan dat zo ja wie kan me helpen? Ik wil dus graag dat Macro elke dag om 00:01 wordt gedraaid met deze voorwaarden:

Sub Macro1() elke dag om 00:01 uur
Application.Run "'Macro1.xlsm'! SUB1" (deze sub Macro mag elke dag gedraaid worden)
Application.Run "'Macro1.xlsm'! SUB2" ( deze sub Macro mag alleen op werkdagen gedraaid worden)
Application.Run "'Macro1.xlsm'! SUB3" (deze sub Macro mag alleen op een maandag gedraaid worden)
Application.Run "'Macro1.xlsm'! SUB4" (deze sub Macro mag alleen op de eerste dag van de maand gedraaid worden)
Application.Run "'Macro1.xlsm'! SUB5"( deze sub Macro mag alleen op de eerste werkdag van de maand gedraaid worden)
End Sub

Alvast bedankt

Code:
Sub Macro1()
Application.Run "'Macro1.xlsm'! SUB1"
Application.Run "'Macro1.xlsm'! SUB2"
Application.Run "'Macro1.xlsm'! SUB3"
Application.Run "'Macro1.xlsm'! SUB4"
Application.Run "'Macro1.xlsm'! SUB5"

End Sub
 
1. Haal alle APplication.run rommel weg en laat alleen de namen van de routines staan, dat is afdoende om een andere macro aan te roepen.
2. Ik denk dat je de aanroep van de code moet verplaatsen naar de Thisworkbook module, in het Workbook_Open event.
3. Je kunt Task Scheduler gebruiken om een bepaald bestand op een bepaald moment te laten openen.
 
Kijk eens naar bijgevoegd voorbeeld:
Bekijk bijlage Macro.xlsm

Als je die met Excel opent gebeurt er niks.
Maar als je die start met een batch file met de volgende inhoud:
Code:
"[COLOR="#FF0000"]C:\Program Files (x86)\Microsoft Office\root\Office16[/COLOR]\EXCEL.EXE"  "[COLOR="#FF0000"]E:\Helpmij\Khalid[/COLOR]\Macro.xlsm" /KHL=Macro1
Hierin wijzig je de rode gedeeltes door de juiste mapnamen.

Dan wordt de macro gestart die in de Workbook_Open is toegekend aan het label /KHL=Macro1
Het document bevat een module met de naam mSystem waarin een macro staat die de opdrachtregel ophaalt en daarop acteert.

Zo kan je dus ook batch file maken met /KHL=Macro2 en zo t/m Macro5.
Die batch files kan je per stuk in de Windows Task scheduler plannen op de gewenste tijdstippen.

Zo heb je alles in 1 document die verschillend kan worden gebruikt. Deze techniek gebruik ik regelmatig.
Het vereist wel dat er op geen enkele plek in de code om user interactie wordt gevraagd en dat foutafhandeling dusdanig is geregeld dat Excel nergens om gaat staan vragen want dan loopt dat achtergrond proces uiteraard niet door.
 
Laatst bewerkt:
Kijk eens naar bijgevoegd voorbeeld:
Bekijk bijlage 318601

Als je die met Excel opent gebeurt er niks.
Maar als je die start met een batch file met de volgende inhoud:
Code:
"[COLOR="#FF0000"]C:\Program Files (x86)\Microsoft Office\root\Office16[/COLOR]\EXCEL.EXE"  "[COLOR="#FF0000"]E:\Helpmij\Khalid[/COLOR]\Macro.xlsm" /KHL=Macro1
Hierin wijzig je de rode gedeeltes door de juiste mapnamen.

Dan wordt de macro gestart die in de Workbook_Open is toegekend aan het label /KHL=Macro1
Het document bevat een module met de naam mSystem waarin een macro staat die de opdrachtregel ophaalt en daarop acteert.

Zo kan je dus ook batch file maken met /KHL=Macro2 en zo t/m Macro5.
Die batch files kan je per stuk in de Windows Task scheduler plannen op de gewenste tijdstippen.

Zo heb je alles in 1 document die verschillend kan worden gebruikt. Deze techniek gebruik ik regelmatig.
Het vereist wel dat er op geen enkele plek in de code om user interactie wordt gevraagd en dat foutafhandeling dusdanig is geregeld dat Excel nergens om gaat staan vragen want dan loopt dat achtergrond proces uiteraard niet door.

Hi Edmoor,

Bedankt voor de uitleg. Ik zal ff straks gaan proberen .
Mijn dank is groot
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan