• 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.

Screensaver effect middels VBA code

Status
Niet open voor verdere reacties.

Humadgen

Gebruiker
Lid geworden
16 aug 2006
Berichten
251
Hoi

Wat ik wil bereiken is, dat er een scoreboard tijdens een sport evenement sponsers gepresenteerd kunnen worden in een gedeelte van het spreadsheet waardoor onze jeugdcommissie geld kan werven. De gebruiker van het scoreboard wil ik niet "belasten" met het handmatig activeren van een "loop VBA code" en de onderbreking aan het eind moet ook "geruisloos" gaan. ( dus geen DEBUG melding )

Ik ben daarom op zoek naar code die x minuten na de laatste actie, automatisch opstart en indien mogelijk ook zonder [debug] melding stopt zodra je weer iets wilt tikken of de muis aanraakt. Eigenlijk moet je het vergelijken met het screen saver effect bij een pc die aanslaat als je even wegloopt bij je pc.

Het idee erbij is dat zodra deze "timer" start, er van een andere sheet een cel wordt gecopieerd en geplakt in de sheet die zichtbaar is. ( zie bijlage)

Code:
Sub Macro1()

Application.ScreenUpdating = False
    
    Do
    
    Sheets("Sponsoren").Select
    Range("B7").Select
    Selection.Copy
    Sheets("Basis").Select
    Range("B7").Select
    ActiveSheet.Paste

Application.ScreenUpdating = True

Application.ScreenUpdating = False
        
        Sheets("Sponsoren").Select
        Range("B7").Select
        Selection.Cut
        
        Do
        ActiveCell.Offset(1, 0).Select
        Loop Until IsEmpty(ActiveCell.Offset(0, 0))
        
        Selection.Insert Shift:=xlDown
        Application.CutCopyMode = False
        
        Sheets("Basis").Select
        Range("B7").Select
        Application.Wait (Now + TimeValue("0:00:05"))
    
    Loop Until IsEmpty(ActiveCell.Offset(0, 0))

Application.ScreenUpdating = True

End Sub
en door een do - until loop blijft dit zich herhalen waarbij de verschillende sponsoren worden afgewisseld.

=====

Waar ik dus nu naar op zoek ben is het "screen saver - opstart en eind gedeelte"

Iemand enig idee
Alvast bedankt

Humadgen
 

Bijlagen

Humadgen,

Ik weet geen antwoord op je vraag maar heb wat Select uit je code gehaald, zo werkt het ook.
Code:
Sub Macro1()

Application.ScreenUpdating = False
    
    Do
        Sheets("Sponsoren").Range("B7").Copy _
        Sheets("Basis").Range("B7")

Application.ScreenUpdating = True

Application.ScreenUpdating = False
        
        Sheets("Sponsoren").Range("B7").ClearContents
        
    Do
        ActiveCell.Offset(1, 0).Select
    Loop Until IsEmpty(ActiveCell.Offset(0, 0))
        
        Selection.Insert Shift:=xlDown
        Application.CutCopyMode = False
        
        Sheets("Basis").Range("B7"). _
        Application.Wait (Now + TimeValue("0:00:05"))
    
    Loop Until IsEmpty(ActiveCell.Offset(0, 0))

Application.ScreenUpdating = True

End Sub
 
Hoi EA.

Dank je wel voor je eerste response. Ik zal kijken wat dit doet (want ben nooit te oud om te leren). Ik hoop dat er toch nog iemand reageert op het "screen saver" principe wat ik zoek.

Ik heb nog wel zitten denken over een andere manier dan de echte screensaver techniek waar ik naar vraag (mocht dat niet mogelijk zijn in EXCEL), maar heb daar ook nog geen code voor kunnen bedenken. Maar misschien dat deze manier van benaderen wel een stap in de goede richting kan zijn. (beetje out of the box denken)

Misschien weet iemand dat een bepaalde "keystroke" een timer kan triggeren ( bijvoorbeeld de <ENTER> toets ) en dat dan na 1 minuut de Macro uit de bijlage gaat lopen, maar dat bij het aanraken van een andere <KEYSTROKE> die macro stopt.
Op die manier kan invoer ook gewoon doorgaan, en start de "lichtkrant / screensaver" ook nadat de laatste <ENTER> heeft plaatsgevonden

Geen idee of dat wel iets kan opleveren, ik gooi het maar even als "out of the box gedachte" erbij.

Alvast bedankt voor alle oplossingen.

Grtnx
Humadgen
 
Out of the box into Powerpoint?
Maak één powerpoint dia met een koppeling naar je excel scorebord. Met aangepaste animatie kun je de logo's en teksten animeren. Veel gelikter.
 
OK. dat klinkt interessant, en wil ik graag meer van weten. maar ik zou niet weten hoe dat gaat werken:confused:.
Ik heb nu een scoreboard waar uitslagen in worden weggeschreven in EXCEL die ziet eruit als de website van de vereniging.
- Hoe maak ik een link die dan vanuit powerpoint opstart? betekent dat dat je EXCEL opent en daarnaast Powerpoint? of wordt Powerpoint dan gestart in EXCEL (of juist ernaast)

Daarnaast moet het niet zo zijn dat het scoreboard niet meer zichtbaar is, want dat blijft het belangrijkste om te tonen.
Het moet eruit blijven zien zoals je eigenlijk hier op Helpmij de banners ziet verspringen.

Terwijl ik dit schrijf denk ik opeens :
Bedoel je misschien
- INSERT - Microsoft Powerpoint Presentation of
- INSERT - Microsoft PowerPoint Macro enabled slide

Maar ik weet niet hoe dat gaat werken. Ik kan dus wel wat extra aanwijzingen gebruiken. Als je een internet link hebt naar een waar e.e.a. op uitgelegd staat ...... graag.


Is het dan zo dat ik eerst een Powerpoint presentatie in elkaar zet en die via INSERT in Excel toon????

Zal ondertussen ook nog wat gaan googlen , maar als je nog een tip hebt.....graag:thumb:

Bedankt voor het "out of the box" meedenken.

Laat niet gaan dat ik ook nog wel hoop dat er een VBA code bestaat die die het screensave principe laat werken.

Grtnx
Humadgen
 
Voor deze vraag heb ik hoop ik nog steed dat er VBA code te vinden is die alles in EXCEL regelt, maar ben inmiddels met het PP principe aan de gang gegaan.

Ik heb nu een "klein object window" in een EXCEL sheet ingevoegd, met daarin 3 slides, maar dan zou ik die slideshow op het kleine formaat willen laten lopen, (Ik neem aan dat dat ook middels VBA code kan)
Maar ik kom niet verder dan handmatig die show starten en dan vult deze het hele scherm.

Dus er is nu ook de vraag of iemand die code weet ( of moet dat deel van de vraag dan naar de Powerpoint sectie in het forum )

ik kij uit naar ieder idee

Grtnx
Humadgen
 
Hoe maak ik een link die dan vanuit powerpoint opstart? betekent dat dat je EXCEL opent en daarnaast Powerpoint? of wordt Powerpoint dan gestart in EXCEL (of juist ernaast)
Je opent excel en pp. In xl selecteer je je scorebord en kopieert dat. Dan ga je naar je pp dia en plakt speciaal als koppeling.
Uiteindelijk presenteer je dus geen excel maar een powerpoint dia. Met aangepaste animaties kun je er een gelikte show van maken.
 
Hoi pixcel

Heb geprobeerd wat je zegt, maar dan staat mijn EXCEL scorebord dus in een dia in PP.
Ik kan dan wel de waardes in EXCEL aanpassen, maar hoe krijg ik dan dat er verschillende sponsoren om beurten zichtbaar worden. Dat snap ik niet. Of moet ik nu eerst een (snelcursus) PP doen om iedere keer een nieuwe sponsor er in te zetten? Denk dat ik dan deze vraag dan bij het PP forum moet gaan plaatsen.

Blijft wat mij betreft alleen voor dit forum de originele vraag, inzake een screensaver effect open. Tenzij er nog andere ideeen bedacht worden. Vond / vind die PP oplossing zeker niet slecht, en misschien lukt het allemaal wel als ik meer kennis heb van PP?!?:confused:

Grtnx
Humadgen
 
Laatst bewerkt:
Ik loop ook nog tegen het probleem op dat Macro's ( waarbij ik in EXCEL van een sheet naar een ander sheet ga) niet werken. :(

Dus ook daar doe ik , ofwel iets verkeerd, ofwel werkt het niet.


Grtnx
humadgen
 
Laatst bewerkt:
==========

Iemand misschien nog een kans gezien om naar de echte vraag......Screensaver effect in EXCEL kunnen kijken?
Misschien dat het laten starten 'x tijd na een keystroke' en laten stoppen van een Macro zodra ' er een willekeurig knop wordt aangeraakt' niet mogelijk is, maar....
heeft iemand dan een verbetering op het laatste stukje macro.

Nu kan ik de macro alleen maar stoppen door 2x op ESCAPE te drukken en dat geeft dan een 'debug' melding.
Het moet toch minimaal mogelijk zijn om een Loop in een Macro te onderbreken zonder die melding.

Thanks voor een idee in die richting zodat ik misschien weer een stapje verder kan.

Grtnx
humadgen
 
Ik kan dan wel de waardes in EXCEL aanpassen, maar hoe krijg ik dan dat er verschillende sponsoren om beurten zichtbaar worden. Dat snap ik niet. Of moet ik nu eerst een (snelcursus) PP doen om iedere keer een nieuwe sponsor er in te zetten? Denk dat ik dan deze vraag dan bij het PP forum moet gaan plaatsen.
Dit is inderdaad een pp vraag. Met Animaties kun je op je dia logo's en teksten tonen, met elke overgang die je maar wilt. En full screen, wat je in excel niet gaat lukken.
Maar ondertussen voor je "echte" vraag: zie bijlage, met een iets andere insteek. Gebruik Alt-F8 om de show te starten of te stoppen.
 

Bijlagen

Hoi Pixcel

Ik kan de VBA code redelijk lezen als deze redelijk straight forward is, maar zou zelf niet een VBA kunnen schrijven met "Public subs", ".Private subs" en "Option explicit" en zo.
Ben meer iemand van het opnemen via de recorder en dan aanpassen dan blijft het leesbaar en snap ik wat er gaat gebeuren. Maar het doorrol effect gebeurd inderdaad zoals het getoont kan worden, en met lang kijken wat er staat snap ik het redelijk wat er gebeurd.

Maar ik moet nu de rest van het scorebord X regels lager gaan plaatsen omdat er steeds regels worden ge"hide"en ge-"unhide" dus daar moet ik iets op verzinnen met name als het aantal sponsors zou toenemen, maar daar ga daar mee aan de slag.
Wat ik niet snap is een stukje in de code
Code:
    With Sheet2.Range("B7:B10")
Daarin benoem je toch Sheet2, maar er is toch geen sheet 2? Hoe moet ik die Sheet2 zien in deze code. Kun je daar iets over uitleggen?

Al bij al werkt dit prima

Thanks
Humadgen
 
Laatst bewerkt:
Hoi Pixcel

Ben ik nog een keer
Met een beetje aanklooien in VBA ( met jou code als startpunt ) is het gelukt.
Ik snap ook je Sheet2 verwijzing nu. (want daar liep mijn code op vast omdat ik die in het echte scorebord toevallig niet meer had.

en ik heb het zelfs voor elkaar om met plaatjes te werken die in de verschillende "hidden" rows verstopt zitten. Dus in plaats van de "simpele" voorbeelden in het eerste bestandje kan ik nu gewoon bedrijfslogos laten zien met plaatjes. ( dus tevens de kwaliteit zoals bij PP. )

Natuurlijk blijft het EXCEL, maar binnen de mogelijkheden van EXCEL is dit (rekening houdende met de layout ) helemaal TOP.:thumb:

Heel erg bedankt.
Humadgen
 
Mooi dat het gelukt is. Als je afbeeldingen gebruikt hoef je geen rijen te verbergen.
 

Bijlagen

Ik heb dit berichtje er even eruitgehaald, want had de aanpassing op dit berichtje (wat ik vannacht snel even geschreven had) herschreven maar dit als nieuwe reactie geplaatst. in plaats van aangepast.
( excuses daarvoor, want dat was niet de bedoeling. )

:o

Humadgen
 
Laatst bewerkt:
Hoi Pixcel

Dit werkt heel mooi, echter het probleem is dat er ook een aantal plaatjes op het werksheet staan die niet in deze "loop" mogen worden meegenomen. (die hebben de functie om de sheet aan te kleden)
Is er een mogelijkheid om de plaatjes die wel als sponser mogen "lopen" te defineren of ergens weg te zetten, en de andere die als achtergrond dienen te "excluden" van de loop.

Ik zat te denken in deze richtingen:
1 Misschien dat alle plaatjes die als sponser worden gebruikt op een andere sheet kunnen staan ofzo? Dan is het onderhoud technisch natuurlijk heel eenvoudig als er een nieuwe sponser bij komt of er een weg moet, want dan hoef ik een nieuwe sponsor alleen maar op die sheet te "dumpen"

of
2 dat de plaatjes die wel in de sponser loop meegenomen moeten worden seperaat worden benoemd?
Bijvoorbeeld als er maar 3 plaatjes zijn iets in deze richting
Code:
    ActiveSheet.Shapes.Range(Array("Picture 9")).Select
    Selection.ShapeRange.ZOrder msoSendToBack
    ActiveSheet.Shapes.Range(Array("Picture 7")).Select
    Selection.ShapeRange.ZOrder msoSendToBack
    ActiveSheet.Shapes.Range(Array("Picture 5")).Select
    Selection.ShapeRange.ZOrder msoSendToBack
    ActiveSheet.Shapes.Range(Array("Picture 9")).Select
    Selection.ShapeRange.ZOrder msoSendToBack
    ActiveSheet.Shapes.Range(Array("Picture 7")).Select
    Selection.ShapeRange.ZOrder msoSendToBack
    ActiveSheet.Shapes.Range(Array("Picture 5")).Select
    Selection.ShapeRange.ZOrder msoSendToBack
Dan moeten alleen de plaatjes (ongeveer even groot zijn ( of minimaal dezelfde kleur buitenrand hebben ) maar dat is wel te regelen. en moet ik iedere keer de VBA code aanpassen met het nieuwe plaatje nummer, maar dat is ook geen ramp.

Ik zie alleen nog niet hoe ik dat in jou stukje code moet inplakken. ( ga ik vanavond weer eens mee lopen klooien, want ik snap een paar delen niet helemaal ), maar mocht je een van bovendstaande opties eenvoudig weten in te passen ( of zelf nog een 3e weet..... ), Ik sta open voor je plannen.

Super wat je tot nu toe hebt bedacht. :thumb::thumb::thumb:

Thanks
Humadgen
 
Het eenvoudigst lijkt me om de shapes voor de "sponsor loop" een speciale naam te geven (bijv de prefix "SPONSOR-" geven) en in de code hier op te selecteren.
if left(sheet2.shapes(i).name, len(PREFIX)) = PREFIX then dit = een_sponsor
 
Hoi Pixcel

Ik heb het gevoel dat de oplossing heel dicht bij ligt, en ik ben aan het proberen wat je schrijft, maar zoals eerder gezegd ik ben niet goed in het begrijpen van VBA code met Option Explicit, Private Sub, Public Sub. ( Ik zou daar echt eens een training in willen krijgen.)

Maar ik zie niet hoe ik bij de naam van het plaatje een PREFIX wegzet. ( Ik heb geprobeerd om op de plaatjes met rechts te klikken en hoopte dan iets te vinden om de naam te wijzigen, maar daar zie ik niets wat ik kan gebruiken.)

en
if left(sheet2.shapes(i).name, len(PREFIX)) = PREFIX then dit = een_sponsor

dit zal ik waarschijnlijk in een van de Private Subs moeten verwerken, (met wellicht nog een stukje bewerking ) maar ook daar kom ik niet uit.

Ik hoop dat je me met nog wat verder kunt helpen.
Alvast wederom mijn dank als je me met het laatste stukje kunt helpen.

Vriendelijke groeten
Humadgen
 
Hoi SNB

Ook wat alvast bedankt voor het meedenken (maar volgens mij geeft dit hetzelfde resultaat wat pixcel heeft bedacht, alleen anders weggeschreven in VBA), (ook bij jou VBA oplossing begrijp ik voor ongeveer 80% wat er gebeurd. en ik zou het zo graag helemaal snappen. :mad: )

Maar het lost het nog niet mijn laatste stukje van het probleem op, dat slechts een bepaald aantal plaatjes (DE SPONSERS) op deze manier mogen mee-lopen. Er staan namelijk ook plaatjes op het "sheet", die moeten blijven staan. ( Op manier wil ik de "aankleding van het scoreboard" behouden)

Ik kom nog iets vreemds tegen. Als ik bij jouw oplossing een 6e plaate er bijplak, dan laat jouw code nog maar 3 van de 6 plaatjes zien. :confused:
Dat was bij pixcel niet het geval.

Maar ben wel heel blij met wat je probeert te doen.

Grtnx
Humadgen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan