vba op een bepaalde tijd uitvoeren

Status
Niet open voor verdere reacties.

bloemenman

Gebruiker
Lid geworden
18 jun 2012
Berichten
118
Goedemiddag,

Ik heb een excel document gemaakt met 3 vba codes erin verwerkt. Deze werken allemaal prima alleen kom ik met een opdracht niet verder.
Het is de bedoeling dat wanneer het bestand geminimaliseerd is deze om 17:50 uur vanzelf weer maximaliseerd.
Wie kan mij helpen?
Code:
Private Sub CommandButton2_Click()
Application.WindowState = xlMinimized
End Sub

Code:
Private Sub CommandButton3_Click()

ActiveSheet.Unprotect

Range("A5:D101").Select
    Selection.Sort Key1:=Range("A5"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
        Range("C2:D2").Select
        
ActiveWorkbook.SaveAs Filename:="\\36.152.30.235\Intranet\Dervingslijsten\Opgeslagen dervingslijsten\Pasp\Pasp_" & Format(Now, "dd-mm-yyyy")

Application.DisplayAlerts = False
    
    Application.Quit
    
Application.DisplayAlerts = False
End Sub
Private Sub CommandButton1_Click()
    MsgBox "Tellijst wordt nu AFGESLOTEN en NIET verzonden!"
    
    Application.DisplayAlerts = False
    Application.Quit
    
End Sub
 
Laatst bewerkt door een moderator:
Dat kun je bereiken met het ontime event.

Zet als volgt de timer in het workbook_open event
Code:
Private Sub Workbook_Open()
       Application.OnTime TimeValue("17:00:00"), "JouwProcedure"
End Sub

In de Sub JouwProcedure laat je vervolgens het venster maximaliseren etc.

Mvg Leo

Ps het gebruik van code tags (#) houdt de post overzichtelijker.

Edit, Niet "ontime" zie ik, Vampier was me voor.
 
Laatst bewerkt:
ik heb nu het onderstaande, alleen werkt t nog niet

Code:
Private Sub Workbook_Open()
Application.OnTime TimeValue("19:22:00"), "Application.WindowState = xlNormal"
End Sub
 
Laatst bewerkt door een moderator:
De ontime moet je een sub laten aanroepen, waarin je het window maximaliseert, dan werkt het wel
 
kunt u de gehele formule aanpassen?
ik doe schijnbaar steeds iets fout
 
Code:
Sub test()
Application.OnTime TimeValue("20:12:00"), "Venster"
End Sub
Code:
Sub Venster()
Application.WindowState = xlMaximized
End Sub

Voer deze twee sub's en laat de sub "test" uitvoeren.
Verklein excel en wacht tot de tijd is gepasseerd.
 
het werkt nog niet, weet niet wat er fout gaat,
de fomules zien er nu zo uit,


Code:
Private Sub Workbook_Activate()
Application.DisplayFullScreen = True
Application.CommandBars(1).Enabled = False
Application.CommandBars(3).Enabled = False
Application.CommandBars(4).Enabled = False
Application.DisplayFormulaBar = False
With ActiveWindow
.DisplayHeadings = False
.DisplayGridlines = False
.DisplayWorkbookTabs = False
.DisplayHorizontalScrollBar = False
.DisplayVerticalScrollBar = False
End With
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayFullScreen = False
Application.CommandBars(1).Enabled = True
Application.CommandBars(3).Enabled = True
Application.CommandBars(4).Enabled = True
With ActiveWindow
.DisplayHeadings = True
.DisplayGridlines = True
.DisplayWorkbookTabs = True
End With
End Sub
Code:
Sub test()
Application.OnTime TimeValue("20:47:00"), "Venster"
End Sub
Sub Venster()
Application.WindowState = xlNormal
End Sub
 
Laatst bewerkt door een moderator:
Elke routine (van Sub tot End Sub) voert zelfstandig de "opgedragen" taak uit.
De geposte Subs bedoelde ik ter demonstratie
Deze plak je in een module (menu invoegen>Module
Wanneer je dan Test uitvoert (selecteren en F5 drukken) zie je het venster op de juiste tijd maximaliseren

Wil je het in jouw code automatisch laten starten, dan zet je in de workbook_open event
Code:
Private Sub Workbook_Open()
       Application.OnTime TimeValue("17:00:00"), "Venster"
End Sub


In de genoemde module plaats je
Code:
Sub Venster()
 Application.WindowState = xlNormal
End Sub

et voilá
Werkt dat nog niet, plaats dan een gedepersonaliseerd voorbeeld bestand van wat je wil.
 
@bloemenman Code dient tussen codetags geplaatst te worden. Verschillende berichten van je aangepast. Visual Basic is iets anders dan Visual Basic for Applications, VBA is programmeren binnen Office applicaties. Verplaatst naar juiste sectie.
 
Je weet nu ook hoe het plaatsen van codes werkt.
 
heb nog een vraagje naar aanleiding van mijn vorige vraag.
De formule werkt prima.
Ik wil graag nadat het excelblad gemaximaleerd is automatisch een MSGBox tevoorschuin laten komen. Deze MSGBox moet de gebruiker van het programma vertellen wat er met het gemaximaliseerde excelblad gedaan moet worden (namelijk een button aanklikken om de gegevens op te slaan).
 
Dan zet je gewoon bij Sub Venster als 2de regel
Code:
MsgBox "blablablabla"
 
dat leek mij ook de meest voor de hand liggende oplossing, alleen werkt t niet???
Zodra het excelblad gemaximaliseerd is gebeurd er niks.
 
Als er altijd opgeslagen moet worden, kun je dit beter automatisch regelen i.p.v de gebruiker te vragen om te klikken.
 
nee , er moet namelijk nog wat ingevuld worden op het excel blad voordat de gebruiker een van de buttons moet gebruiken. In de MsgBox moet hier namelijk aan herrinnerd worden.
 
misschien is het een oplossing om een timer in te stellen voor de MsgBox zodat deze, bijvoorbeeld 5 seconde nadat het excelblad is gemaximaliseerd, vanzelf geactiveerd wordt.
Heb hier al wat mee geprobeerd maar krijg het niet werkend.
Wie helpt mij?
 
Op zich zou het gewoon moeten werken.
Zie daarvoor de bijlage
Mogelijk helpt het om de screenupdating (weer?) op true te zetten
Hetzelfde geldt voor de EnableEvents.

Ik heb ook een sub Venster2 toegevoegd met een wachttijd van 2 sec. welke tijd aan is te passen.
Met Starttest kun je de subs testen, verander daarvoor Venster in Venster2

Kun je een gepersonaliseerd voorbeeld posten, als je er nog niet uit bent?

Mvg Leo
Bekijk bijlage maximise.xls
 
Goedemiddag leofact,

heb nu de onderstaande code. Deze werkt, alleen wordt het scherm nadat de MsgBox verschijnt verkleint en er blijft een zandloper in beeld staan. Weet je hier een oplossing voor?


Code:
Private Sub Workbook_Activate()
Application.DisplayFullScreen = True
Application.CommandBars(1).Enabled = False
Application.CommandBars(3).Enabled = False
Application.CommandBars(4).Enabled = False
Application.DisplayFormulaBar = False
With ActiveWindow
.DisplayHeadings = False
.DisplayGridlines = False
.DisplayWorkbookTabs = False
.DisplayHorizontalScrollBar = False
.DisplayVerticalScrollBar = False
End With
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayFullScreen = False
Application.CommandBars(1).Enabled = True
Application.CommandBars(3).Enabled = True
Application.CommandBars(4).Enabled = True
With ActiveWindow
.DisplayHeadings = True
.DisplayGridlines = True
.DisplayWorkbookTabs = True
End With
End Sub
Code:
Private Sub Workbook_Open()
        Application.OnTime TimeValue("16:18:00"), "maximaal"
        Application.OnTime TimeValue("16:18:03"), "Venster"
End Sub
 
Laatst bewerkt door een moderator:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan