Help!

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

Hulp bij posten

Recente topics

Auteur Topic: ScrollRow  (gelezen 17179 keer)

0 leden en 20 gasten bekijken dit topic.

Offline Sunnybat

  • Volledig lid
  • **
  • Berichten: 228
  • Geslacht: Man
  • Oplossing.be
ScrollRow
« Gepost op: 30 april 2024, 13:49:36 »
Hoi,
ik gebruik deze macro in excel om de scroll van de muis na te maken zodat excel gaat scrollen van onder en weer terug naar boven en automatisch, maar het gaat een beetje
blokkerig is er misschien iets dat het een beetje vloeiend gaat


Sub Start()
Dim min, max, kant
min = 10
max = 60
kant = 10
Application.ActiveWindow.ScrollRow = min
While Application.ActiveWindow.ScrollRow <= max
    Application.Wait Now + TimeValue("00:00:01")
        If Application.ActiveWindow.ScrollRow = min Then kant = 10
        If Application.ActiveWindow.ScrollRow = max Then kant = -10
    Application.ActiveWindow.ScrollRow = Application.ActiveWindow.ScrollRow + kant
Wend
End Sub
Excel 365 NL

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.193
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: ScrollRow
« Reactie #1 Gepost op: 30 april 2024, 13:58:22 »
Hallo Sunnybat,

zit er een vraag verborgen in je topic,... (gevonden  :))

Verminder de variabele kant eens tot 5 (en -5) of minder, zelfs tot 1 (en -1).
Als je de timer dan nog lager kan krijgen dan "00:00:01" (dus snellere refresh) denk ik dat je het gewenste effect gaat krijgen.

Groeten,

:) SoftAid :)             

PS, heb je mijn antwoord de vraag in het ander topic al kunnen testen?
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 Della Jordan

  • Volledig lid
  • **
  • Berichten: 180
  • Geslacht: Vrouw
Re: ScrollRow
« Reactie #2 Gepost op: 30 april 2024, 14:46:25 »
Geen flauw idee waarom je zoiets zou willen?
Om eens in te spelen op softaid zijn antwoord
Application.Wait Now + TimeValue("00:00:001")In plaats van 1 seconde is dit één tiende van een seconde.
Ik vermoed echter dat je een soort presentatie wilt maken net zoals in powerpoint.
Groetjes,Della

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.193
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: ScrollRow
« Reactie #3 Gepost op: 30 april 2024, 14:59:54 »
Hallo Della,

Geen flauw idee waarom je zoiets zou willen?
Om eens in te spelen op SoftAid zijn antwoord
Application.Wait Now + TimeValue("00:00:001")In plaats van 1 seconde is dit één tiende van een seconde.

dat heb ik ook geprobeert, maar dat geeft hetzelfde effect als

Application.Wait Now + TimeValue("00:00:01")
Weet niet hoe dat komt ???  :-[

? En hoe doorbreek je zo een While-Wend -Lus? Ik kan Excel enkel geforceerd beëindigen met Taakbeheer.

:) 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 Della Jordan

  • Volledig lid
  • **
  • Berichten: 180
  • Geslacht: Vrouw
Re: ScrollRow
« Reactie #4 Gepost op: 30 april 2024, 15:36:04 »
Citaat
En hoe doorbreek je zo een While-Wend -Lus? Ik kan Excel enkel geforceerd beëindigen met Taakbeheer.
Met de heel weinige gegevens dat we hebben, het enige dat ik kan verzinnen is de escape toets een paar seconden indrukken.
Groetjes,Della

Offline Della Jordan

  • Volledig lid
  • **
  • Berichten: 180
  • Geslacht: Vrouw
Re: ScrollRow
« Reactie #5 Gepost op: 30 april 2024, 16:53:41 »
Ik denk dat Sunnybat zoiets zoekt:
@ SoftAid, ik kon een grapje weer niet laten. 0:-)
Er zit 10 seconden tussen de presentaties, wat geduld.
Groetjes,Della

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.193
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: ScrollRow
« Reactie #6 Gepost op: 30 april 2024, 17:06:04 »
Hallo Della,

Sunnybat krijgt van mij het laatste woord, maar zijn openingsvraag luid toch heel anders dan dat wat jij voor ogen hebt:

ik gebruik deze macro in excel om de scroll van de muis na te maken zodat excel gaat scrollen van onder en weer terug naar boven en automatisch, maar het gaat een beetje blokkerig. Is er misschien iets dat het een beetje vloeiender gaat ???

:) 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 Della Jordan

  • Volledig lid
  • **
  • Berichten: 180
  • Geslacht: Vrouw
Re: ScrollRow
« Reactie #7 Gepost op: 30 april 2024, 17:12:51 »
Ja dat klopt Softaid, maar ik zou niet weten wat sunnybat voor ogen heeft.
Zonder antwoord van sunnybat is het koffiedik kijken.
Groetjes,Della

Offline Sunnybat

  • Volledig lid
  • **
  • Berichten: 228
  • Geslacht: Man
  • Oplossing.be
Re: ScrollRow
« Reactie #8 Gepost op: 01 mei 2024, 13:27:48 »
@Della Jordan @SoftAid

het is een soort lopende scherm die in een buurthuis van me buurman op een scherm loopt ( soort bejaardenhuis )

het is wel zo te doen, alleen jammer dat het een beetje schokt
en er zit ook nog een soort foutje in kan de macro niet zo goed stoppen en als ik ESC druk komt die met een fout
dus ben aan zoeken om de macro fatsoenlijk te stoppen
en de andere vraag heeft ook hier een beetje mee te maken
zodat me buurman zelf een csv in kan laden



Excel 365 NL

Offline Della Jordan

  • Volledig lid
  • **
  • Berichten: 180
  • Geslacht: Vrouw
Re: ScrollRow
« Reactie #9 Gepost op: 01 mei 2024, 16:18:18 »
Citaat
en er zit ook nog een soort foutje in kan de macro niet zo goed stoppen en als ik ESC druk komt die met een fout
Zal altijd zo zijn, je zit in een oneindige loop.
Sub test()
Dim lastRow As Long, i As Long
lastRow = Range("A" & Rows.Count).End(xlUp).Row

For i = 1 To lastRow Step 2
    Cells(i, 1).Select
    ActiveWindow.SmallScroll down:=5
    Application.Wait (Now + TimeValue("00:00:01"))
    If i = lastRow - 2 Or i = lastRow - 1 Then
        i = 0
    Cells(1, 1).Select
    End If
Next i
End Sub
Hier maak ik gebruik van SmallScroll, is misschien minder schokkerig, maar je probleem blijft hetzelfde, je zit in een oneindige loop.
Excel is daarvoor helemaal niet geschikt.
Moest er wat meer duidelijkheid bestaan wat ze in het buurthuis willen bereiken, ik heb ooit eens een powerpresentatie gemaakt voor het buurthuis van mijn oma.
Dat ging van openingsuren van de kapper, kantine, welke bezigheidstherapie, noem maar op, zelfs de biljard uitslagen.
Groetjes,Della

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.193
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: ScrollRow
« Reactie #10 Gepost op: 01 mei 2024, 21:36:54 »
Zal altijd zo zijn, je zit in een oneindige loop.

Kan er geen tweede knop geplaatst worden, die een macro "Stoppen" triggert.
Ik zal de moelijke manier nemen....
Die macro "stoppen" zet de inhoud vaneen cel op "stop".
De macro "Start", kijkt bij elke loop of betreffende cel "stop" bevat.
Zo ja, Exit Sub

Wat het probleem bij het scrollen !!kan!!! zijn is 32bit api's die in een 64bit omgeving niet goed werken.
Die moet je dan declareren.....

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Public inc As Integer

Sub ScrollNow()
  Dim lastRow As Long, nextRow As Long
  Application.ScreenUpdating = True
 
  lastRow = ActiveSheet.UsedRange.Rows.Count
  If inc <> 1 Or inc <> -1 Then
    If ActiveCell.Row = lastRow Then
      inc = -1
      Else: inc = 1
    End If
  End If
 
  On Error GoTo handleCancel
  Application.EnableCancelKey = xlErrorHandler
 
  Application.StatusBar = "To End: ESC, Ctrl+Break"
  Do While 1 = 1 'infinite loop
    If inc = 1 And lastRow = ActiveCell.Row Then inc = -1
    If inc = -1 And ActiveCell.Row = 1 Then inc = 1
    nextRow = ActiveCell.Row + inc
    Application.Goto Range("A" & nextRow), True
    Sleep 400
  Loop
handleCancel:
  Application.StatusBar = False
End Sub

Bron


:) 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