Countdown in Powerpoint

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 01:17

F.West98

Alweer 16 jaar hier

Topicstarter
Hallo,

Ik zoek in mijn Powerpointpresentatie een Countdown. Ik heb al veel gevonden, maar niet een countdown als nog x tijd tot x uur. Ik heb wel iets gevonden dat als het geactiveerd wordt een uur aftelt,etc, maar niet een die aftelt tot een bepaald moment. Dit omdat ik in een powerpointpresentatie op oudejaarsavond op de eind-dia wil laten zien hoeveel tijd er nog is voor middernacht.
Is dit mogelijk, zo ja, hoe?

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • Bastiaan
  • Registratie: November 2002
  • Laatst online: 00:00

Bastiaan

Bas·ti·aan (de, m)

Nvm...

[ Voor 97% gewijzigd door Bastiaan op 29-12-2010 22:07 ]


Acties:
  • 0 Henk 'm!

  • CaptJackSparrow
  • Registratie: Februari 2009
  • Niet online

CaptJackSparrow

x07 - License to Tweak.

Het lijkt me het simpelst als je daarvoor een apart applicatietje in de achtergrond laat lopen die je op het eind van de presentatie even naar de voorgrond haalt. Een dergelijk appje moet vrij makkelijk te vinden zijn lijkt me.

Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

of
[proof of concept]:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub settimer()
    Dim t As Single
    Do
        Do While Int(Timer) = t  'do niks behalve rondjes lopen zolang de tijd niet is veranderd
            DoEvents
        Loop
        t = Int(Timer)
        If t = 0 Then 'tijd 0 dan is het 2011
            ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange.Text = "Gelukkig Nieuwjaar"
            Exit Do
        Else 'of geef de seconden weer die je nog moet gaan...
            ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange.Text = TimeSerial(0, 0, 86400 - t)
        End If
    Loop
End Sub

Zet op een of ander knopje de aktieinstelling macro aktiveren en shape x op slide y wordt voorzien van een aftellertje dat elke dag om 00:00:00 gelukkig nieuwjaar roept 8)7


En nog héél véél meer timers voor PP, of een kant en klare 30 dagen trial.

[ Voor 13% gewijzigd door Lustucru op 29-12-2010 23:15 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 01:17

F.West98

Alweer 16 jaar hier

Topicstarter
Lustucru schreef op woensdag 29 december 2010 @ 23:00:
of
[proof of concept]:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub settimer()
    Dim t As Single
    Do
        Do While Int(Timer) = t  'do niks behalve rondjes lopen zolang de tijd niet is veranderd
            DoEvents
        Loop
        t = Int(Timer)
        If t = 0 Then 'tijd 0 dan is het 2011
            ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange.Text = "Gelukkig Nieuwjaar"
            Exit Do
        Else 'of geef de seconden weer die je nog moet gaan...
            ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange.Text = TimeSerial(0, 0, 86400 - t)
        End If
    Loop
End Sub

Zet op een of ander knopje de aktieinstelling macro aktiveren en shape x op slide y wordt voorzien van een aftellertje dat elke dag om 00:00:00 gelukkig nieuwjaar roept 8)7


En nog héél véél meer timers voor PP, of een kant en klare 30 dagen trial.
die code werkt raar. De titel van de presentatie wordt de timer, en loopt vast als ik een knop activeer
ik kijk nog naar die andere dingen :)
ah, al klaar! bij activepresentation.slides(1) moet je niet 1 maar 48 invoegen voor de 48e dia :)
edit: Ik krijg een fout dat iets buiten bereik valt:
Fout -2147024809 (80070057) tijdens uitvoering:
De opgegeven waarde valt buiten het bereik.
Bij foutopsporing krijg ik dan din de regel onder else een fout. Wat is er aan de hand?

[ Voor 11% gewijzigd door F.West98 op 30-12-2010 16:27 ]

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


  • CaptJackSparrow
  • Registratie: Februari 2009
  • Niet online

CaptJackSparrow

x07 - License to Tweak.

Als het even tegen zit heb je het zaterdag werkend. ;)

Als je internet hebt bij die presentatie...

http://countdown.onlineclock.net/countdowns/newyear/

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 01:17

F.West98

Alweer 16 jaar hier

Topicstarter
Mmm... Werkt nu en geen fouten gekregen.
Maar is er een mogelijkheid om een knop te maken die zegt: Stop tellen, ofdat als je de diapresentatie sluit dat het stopt, want dan loopt het door en loopt het vast...

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

ej, 't is een proof of concept, geen produktiecode. :)
Zet in het lusje een check op een globale boolean en laat een ander knopje die van waarde veranderen. Kun je ook meteen voorkomen dat de code twee keer wordt aangeroepen.

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
dim IsRunning as boolean
sub countdown()
if not isRunning then
       isRunning =true
       do while isRunning
       Loop
end if
end sub

sub stop()
 isrunning =false
end sub

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 01:17

F.West98

Alweer 16 jaar hier

Topicstarter
Lustucru schreef op donderdag 30 december 2010 @ 18:16:
ej, 't is een proof of concept, geen produktiecode. :)
Zet in het lusje een check op een globale boolean en laat een ander knopje die van waarde veranderen. Kun je ook meteen voorkomen dat de code twee keer wordt aangeroepen.

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
dim IsRunning as boolean
sub countdown()
if not isRunning then
       isRunning =true
       do while isRunning
       Loop
end if
end sub

sub stop()
 isrunning =false
end sub
is dit dan extra erbij, of vervangend?

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Zelf erbij knutselen. >:)

Sowieso zorgt dat doevent loopje voor akelige instabiliteit als de code niet beeindigd wordt.

Beter kijk je naar de windows timer api uit de eerste link die ik je gaf. mbv de OnSlideShowPageChange(ByVal SSW As SlideShowWindow) auto-macro kun je dan bovendien de timer automatisch starten en stoppen bij het inbeeld krijgen van de slide.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 01:17

F.West98

Alweer 16 jaar hier

Topicstarter
Lustucru schreef op donderdag 30 december 2010 @ 23:59:
Zelf erbij knutselen. >:)

Sowieso zorgt dat doevent loopje voor akelige instabiliteit als de code niet beeindigd wordt.

Beter kijk je naar de windows timer api uit de eerste link die ik je gaf. mbv de OnSlideShowPageChange(ByVal SSW As SlideShowWindow) auto-macro kun je dan bovendien de timer automatisch starten en stoppen bij het inbeeld krijgen van de slide.
de code werkte, nu zegt ie steeds: overloop bij de regel met de tijd die er nog komt

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Aangenomen dat je er uit bent gekomen met de links die hier zijn gegeven: wat is je uiteindelijke code geworden? Kunnen anderen misschien van leren :)

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 01:17

F.West98

Alweer 16 jaar hier

Topicstarter
F_J_K schreef op maandag 03 januari 2011 @ 11:40:
Aangenomen dat je er uit bent gekomen met de links die hier zijn gegeven: wat is je uiteindelijke code geworden? Kunnen anderen misschien van leren :)
Ik had de code van Lustucru, maar die liep bij de laatste seconde vast :)
En dit jaar zit ik met hetzelfde. Ik heb geen enkel verstand van Basic oid, dus dat is erg moeilijk :P
De tweede code uit de laatste link van Lustucru, zijn laatste post, die werkt wel, maar ik krijg geen timer... (in php zou ik zoiets misschien wel kunnen maken, maar VB... nee)
edit:
aja... die krijgt wel een timer, mar gewoon 1, 2, 3, enz

[ Voor 5% gewijzigd door F.West98 op 31-12-2011 14:55 ]

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Lijkt me een kwestie van beide stukjes code door elkaar gooien. Iets aangepast:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Declare Function SetTimer Lib "user32" _
                            (ByVal hwnd As Long, _
                             ByVal nIDEvent As Long, _
                             ByVal uElapse As Long, _
                             ByVal lpTimerFunc As Long) As Long

Declare Function KillTimer Lib "user32" _
                            (ByVal hwnd As Long, _
                             ByVal nIDEvent As Long) As Long

Public TimerID As Long
Public bTimerState As Boolean

Sub TimerOnOff()
    If bTimerState = False Then
        TimerID = SetTimer(0, 0, 1000, AddressOf TimerProc)
        If TimerID = 0 Then
            MsgBox "Unable to create the timer", vbCritical + vbOKOnly, "Error"
            Exit Sub
        End If
        bTimerState = True
    Else
        TimerID = KillTimer(0, TimerID)
        If TimerID = 0 Then
            MsgBox "Unable to stop the timer", vbCritical + vbOKOnly, "Error"
        End If
        bTimerState = False
    End If
End Sub

Sub TimerProc(ByVal hwnd As Long, _
                    ByVal uMsg As Long, _
                    ByVal idEvent As Long, _
                    ByVal dwTime As Long)
    Dim t As Long
    t = Timer
    If t <= 20 Then 'tijd 0 dan is het 2012, moet binnen 20s wel lukken...
        ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange.Text = _
            "Gelukkig Nieuwjaar"
        If bTimerState Then TimerOnOff
    Else 'of geef de seconden weer die je nog moet gaan...
        ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange.Text = _
            Format(TimeSerial(0, 0, 86400 - t), "hh:mm:ss")
    End If
End Sub

Debug->Compile VBAProject wil ook wel eens helpen. :p Code dus geciteerd van hier.

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 01:17

F.West98

Alweer 16 jaar hier

Topicstarter
pedorus schreef op zaterdag 31 december 2011 @ 18:29:
Lijkt me een kwestie van beide stukjes code door elkaar gooien. Iets aangepast:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Declare Function SetTimer Lib "user32" _
                            (ByVal hwnd As Long, _
                             ByVal nIDEvent As Long, _
                             ByVal uElapse As Long, _
                             ByVal lpTimerFunc As Long) As Long

Declare Function KillTimer Lib "user32" _
                            (ByVal hwnd As Long, _
                             ByVal nIDEvent As Long) As Long

Public TimerID As Long
Public bTimerState As Boolean

Sub TimerOnOff()
    If bTimerState = False Then
        TimerID = SetTimer(0, 0, 1000, AddressOf TimerProc)
        If TimerID = 0 Then
            MsgBox "Unable to create the timer", vbCritical + vbOKOnly, "Error"
            Exit Sub
        End If
        bTimerState = True
    Else
        TimerID = KillTimer(0, TimerID)
        If TimerID = 0 Then
            MsgBox "Unable to stop the timer", vbCritical + vbOKOnly, "Error"
        End If
        bTimerState = False
    End If
End Sub

Sub TimerProc(ByVal hwnd As Long, _
                    ByVal uMsg As Long, _
                    ByVal idEvent As Long, _
                    ByVal dwTime As Long)
    Dim t As Long
    t = Timer
    If t <= 20 Then 'tijd 0 dan is het 2012, moet binnen 20s wel lukken...
        ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange.Text = _
            "Gelukkig Nieuwjaar"
        If bTimerState Then TimerOnOff
    Else 'of geef de seconden weer die je nog moet gaan...
        ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange.Text = _
            Format(TimeSerial(0, 0, 86400 - t), "hh:mm:ss")
    End If
End Sub

Debug->Compile VBAProject wil ook wel eens helpen. :p Code dus geciteerd van hier.
Die werkt!
Heeeeel erg bedankt, die gebruik ik de komende jaren ook.
Je moet gewoon een vierkant/tekstvak op dia zetten, slides nummer veranderen naar jouw dia en als je op dat vierkant/tekstvak klikt, dan macro tmronoff kiezen

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

En waarom zou je niet gewoon de timing-events van de presentatie gebruiken. Zonder animatie kom je ook aardig in de buurt en het hoeft toch niet atoom-precies te zijn (want anders gebruikte je wel wat anders dan powerpoint ;))

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 01:17

F.West98

Alweer 16 jaar hier

Topicstarter
:+
Ben ik weer.
Dit keer iets eerder, maar Powerpoint 2010 (vorig jaar gebruikt) en 2013 crashen op de vorig jaar gebruikte code... Iets met overflow. Voordat ik kan klikken op debug: crash.
De code van vorig jaar is dus die van pedorus.
Ik heb dit jaar al dingen geprobeerd met Excel-objects erin, maar in Excel alleen al gaat het CPU gebruik omhoog naar 100% voor die core van Excel, niet echt goede code dus.

Iemand een idee?

edit:
runtime error 6, overflow

[ Voor 3% gewijzigd door F.West98 op 30-12-2012 01:21 ]

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI


Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

zet een onderbrekingspunt en stap met F8 door je code; probeer zo te achterhalen waar de overflow optreedt.

[ Voor 9% gewijzigd door Lustucru op 30-12-2012 17:50 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • 0 Henk 'm!

  • F.West98
  • Registratie: Juni 2009
  • Laatst online: 01:17

F.West98

Alweer 16 jaar hier

Topicstarter
Lustucru schreef op zondag 30 december 2012 @ 17:49:
zet een onderbrekingspunt en stap met F8 door je code; probeer zo te achterhalen waar de overflow optreedt.
Ah gevonden :)
Ik denk dat het zo wel werkt:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Declare Function SetTimer Lib "user32" _
                            (ByVal hwnd As Long, _
                             ByVal nIDEvent As Long, _
                             ByVal uElapse As Long, _
                             ByVal lpTimerFunc As Long) As Long

Declare Function KillTimer Lib "user32" _
                            (ByVal hwnd As Long, _
                             ByVal nIDEvent As Long) As Long

Public TimerID As Long
Public bTimerState As Boolean

Sub TimerOnOff()
    If bTimerState = False Then
        TimerID = SetTimer(0, 0, 1000, AddressOf TimerProc)
        If TimerID = 0 Then
            MsgBox "Unable to create the timer", vbCritical + vbOKOnly, "Error"
            Exit Sub
        End If
        bTimerState = True
    Else
        TimerID = KillTimer(0, TimerID)
        If TimerID = 0 Then
            MsgBox "Unable to stop the timer", vbCritical + vbOKOnly, "Error"
        End If
        bTimerState = False
    End If
End Sub

Sub TimerProc(ByVal hwnd As Long, _
                    ByVal uMsg As Long, _
                    ByVal idEvent As Long, _
                    ByVal dwTime As Long)
    Dim t As Long
    Dim sec As Long
    Dim min As Long
    Dim hr As Long
    Dim sec2 As String
    t = Timer
    sec = Int((CLng(3600) * 24) - t)
    min = Int(CLng(1440) - (t / 60))
    hr = Int(24 - (t / CLng(3600)))
    min = min - (60 * hr)
    sec = sec - (CLng(3600) * hr) - (60 * min)
    If sec < 10 Then
        sec2 = "0" & sec
    Else
        sec2 = sec
    End If
    
    If t <= 20 Then 'tijd 0 dan is het 2012, moet binnen 20s wel lukken...
        ActivePresentation.Slides(20).Shapes(20).TextFrame.TextRange.Text = _
            "Gelukkig Nieuwjaar"
        If bTimerState Then TimerOnOff
    Else 'of geef de seconden weer die je nog moet gaan...
        ActivePresentation.Slides(20).Shapes(20).TextFrame.TextRange.Text = hr & ":" & min & ":" & sec2
    End If
End Sub



Maar nu gaat de animatie op die ene pagina steeds resetten als hij de tijd verandert :P. Iemand een idee?

[ Voor 87% gewijzigd door F.West98 op 31-12-2012 01:22 ]

2x Dell UP2716D | R9 7950X | 128GB RAM | 980 Pro 2TB x2 | RTX2070 Super
.oisyn: Windows is net zo slecht in commandline als Linux in GUI

Pagina: 1