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

scrollen met 1 button

Status
Niet open voor verdere reacties.

bowlingman

Gebruiker
Lid geworden
17 okt 2007
Berichten
433
Hallo,
Ik wou op een sheet met 1 button scrollen naar onderliggende rijen en terug, maar dit kreeg ik niet voor mekaar (wel met twee buttons naast elkaar)
Ik heb dan maar de rijen 2 t/m 254 benoemd als "SpelersScoresVerbergen" en dan de volgende code geplaatst
Code:
Sub Spelers_Teams()
    With Range("SpelersScoresVerbergen")
        .EntireRow.Hidden = Not .EntireRow.Hidden
       ActiveSheet.cmbScrollen.Caption = IIf(.EntireRow.Hidden, "Spelers", "Teams")
    End With
End Sub
Kan dit toch niet met de functie scrollen
Dus bij klikken scrollen naar rij 255 en de cmb.caption "Spelers" en terug naar rij 2 en de cmb.caption "Teams"

Grtjs.
Armand
 
Laatst bewerkt:
Zet en Controleer de Caption van de button om aan de hand daarvan te bepalen wat er moet gebeuren.
 
Ik heb het nu zo veranderd en krijg dan de melding "Object Vereist", wat natuurlijk logisch is.
Ik weet echter niet hoe ik in deze code de rijen 2 tot 254 kan bijzetten.
Code:
Private Sub CommandButton1_Click()
    ActiveWindow.SmallScroll = Not ActiveWindow.SmallScroll
    ActiveSheet.cmbScrollen.Caption = IIf(ActiveWindow.SmallScroll, "Spelers", "Teams")
End Sub
Grtjs.
Armand
 
Dit kan uiteraard niet:
ActiveWindow.SmallScroll = Not ActiveWindow.SmallScroll
 
Het lukt me wel om te scrollen en de naam van de button te wijzigen
Code:
Private Sub CommandButton1_Click()
     If ActiveWindow.ScrollRow = 253 Then
     CommandButton1.Caption = "Teams"
     End If
End Sub
Maar het lukt me niet om dan nogmaals te klikken op de button en dan terug naar rij 3 te scrollen en de naam terug te wijzigen.

Grtjs.
Armand
 
Code:
Private Sub CommandButton1_Click()
 With CommandButton1
    .Top = IIf(.Top = Rows(2).Top, Rows(255).Top, Rows(2).Top)
    Windows(1).ScrollRow = IIf(.Top = Rows(255).Top, 255, 2)
    .Caption = IIf(.Top = Rows(255).Top, "Teams", "Spelers")
 End With
End Sub
 
Hallo Harry,
Bedankt voor je hulp, maar als ik deze code gebruik, gaat de button mee (terwijl die in de eerste rij zou moeten blijven staan en ik kan pas terug klikken wanneer ik een cel selecteer.
Ik heb het dan met de volgende code geprobeert en dan krijg ik de foutmelding "Object vereist"
Code:
Private Sub CommandButton1_Click()
With CommandButton1
    ActiveWindow.SmallScroll(255) = Not ActiveWindow.SmallScroll(255)
    ActiveSheet.CommandButton1.Caption = IIf(ActiveWindow.SmallScroll(255), "Spelers", "Teams")
End With
End Sub
Ik heb in het voorbeeld de verschillende codes die ik geprobeert heb laten staan.

Grtjs.
Armand
 

Bijlagen

  • Scrollen.xlsm
    19,1 KB · Weergaven: 46
Zet de knop met de top op rij twee.
Je hoeft geen cel te selecteren.
De knop verhuist naar 255.
Volgende klik staat het weer op rij 2.
 
Bedankt Harry,

Dit werkt perfect nu.
Toch nog even een vraagje.
Ik heb nu row 1, 2 en 3 dezelfde kleur gegeven, alsook row 255 en 256 en de hoogtes van deze rows aangepast zodat het lijkt dat de button netjes in het center van de row staat.
Of kan de hoogte waar de button staat ook bepaald worden in de code zoals in de eigenschappen van de button.

Grtjs.
Armand
 
Beetje proberen met...
Code:
.top+10
 
Hallo Harry,

Naargelang waar ik juist
Code:
.top+10
zet, gebeurt er niets of wordt enkel de button verplaatst.

Grtjs.
Armand
 
Helaas kan ik het niet zien.
 
Ik los het dan wel op met de extra versmalde rijen.
Toch bedankt voor de moeite

Grtjs.
Armand
 
Misschien een idee:

Waarom zet je niet in een cel true/false in een kleur die niet zichtbaar is. Deze wijzig je dan in je code en gebruik je als voorwaarde voor de scroll functie.

Of als het niet erg is om de cell op die plek te selecteren? Dan kun je ook nog iets doen als:

Code:
If Not ActiveCell.Row > 2 Then [A245].Select Else [A1].Select
 
Laatst bewerkt:
Hallo Pollecrown,

Hier begrijp ik niet goed wat je bedoeld.
Kan jij misschien de file even aanpassen

Grtjs.
Armand
 
Ik heb het nu geprobeert met deze code en dan zonder button
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B1")) Is Nothing Or Target.Count <> 1 Then Exit Sub
If Target.Value > 0 Then Application.Goto Cells(Int(Target.Value) * 253 - 251, 1), True
Range("B1").Select
End Sub
Maar uiteraard lukt dat dan alleen als ik in "B1" een getal invoer.
En eigenlijk zou ik daar dan "Teams" invullen en dan automatisch naar rij 255, met "Spelers" terug naar rij 2

Grtjs.
Armand
 
Ik heb het opgelost
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = [B1] Then
If Target.Value = "Teams" Then
ActiveWindow.ScrollRow = 255
Else
ActiveWindow.ScrollRow = 2
End If
End If
End Sub

Bedankt iedereen
Grtjs.
Armand
 
Of zo:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target = [B1] Then
        ActiveWindow.ScrollRow = IIf(Target.Value = "Teams", 255, 2)
    End If
End Sub

Maar volgens mij doe je 2x dezelfde controle.
 
Bedankt Ed voor de tip
Nu is het gelukt om de waarde in de cel in te vullen met een button
Code:
Private Sub CommandButton1_Click()
    Range("B1").Value = "Teams"
End Sub
Maar ik krijg deze niet aangepast om bij een volgende klik de cel te wijzigen in "Spelers".
Weet ook niet of dit lukt.
Zoniet is dat ook geen probleem, want handmatig lukt het scrollen dan wel.
En ik kan ook nog de code van Harry (treath #7) gebruiken.

Grtjs.
Armand
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan