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

tabvolgorde aanpassen

Status
Niet open voor verdere reacties.

rostie-rostelli

Gebruiker
Lid geworden
13 okt 2005
Berichten
229
Hallo,

Is het mogelijk om in een tabblad de volgorde van de tabtoets aan te passen?
Vb: ik ga met de tabtoets -> van A1 naar K1 (normaal bij de volgende tabaanslag zou L1 geselecteerd worden) maar ik wens nu automatisch naar A2 te gaan tot aan K2 en dan terug automatisch A3....... en zo verder.

Is dit mogelijk aub? en wie kan mij eventueel een tip geven?

Alvast bedankt,
Rostie
 
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Static lastCellIndex As Integer
    Dim Addresses_InOrder As Variant
    If Target.Count = 1 Then
        Addresses_InOrder = Array("$A$1", "$F$5", "$B$12", "$A$6")
        lastCellIndex = lastCellIndex + 1
        If lastCellIndex > UBound(Addresses_InOrder) Then _
        lastCellIndex = LBound(Addresses_InOrder)
        If lastCellIndex < LBound(Addresses_InOrder) Then _
        lastCellIndex = LBound(Addresses_InOrder)
        Application.EnableEvents = False
        Range(Addresses_InOrder(lastCellIndex)).Select
        Application.EnableEvents = True
    End If
End Sub

Plaats deze achter betreffende blad. Bij Array de volgorde bepalen v/d te selecteren cellen
Andere methode is alle niet te selecteren cellen beveiligen. Bij gebruik van tab worden dan enkel de niet-beveiligde cellen geselecteerd

Mvg

Rudi
 
Hallo,

Bedankt voor uw reactie, de code werkt perfect !! en de tweede methode pas ik reeds toe, maar mijn pagina is in 2 delen verdeeld, 1 deel links en 1 deel rechts, eerst moet het linkse gedeelte overlopen worden met de vrije cellen en daarna pas het rechtse gedeelte.
Zie bijlage:

Beginnen in linkse gedeelte bij cel
F3,H3,J3 dan
F4 dan
B12, D12 ..... tot .......AJ12 dan
B13, D13 ..... tot .......AJ13 dan
B14............ en zo voort....... tot einde linkse gedeelte

Daarna in het rechtse gedeelte beginnen bij cel
AX3, AZ3, BB3 dan
AX4 dan
AT12, AV12.....tot.....BQ12 dan
AT13, AV12............en zo voort.....

Als ik het goed voor heb moet met uw code elke cel appart ingegeven worden? of is er een eenvoudiger manier om hele groepen cellen in te geven in de code...?

Alvast bedankt voor uw moeite,
Rostie
 

Bijlagen

Het zal een onwaarschijnlijk lange Array worden, maar je zal het zo moeten doen wil je deze methode gebruiken.

Mvg

Rudi
 
En nu nog met een knop erachteraan...

Hallo Forum,

Ook ik ben erg geholpen met deze TS en zijn vraag. Onderstaande code werkt goed, maar nu zou ik graag willen dat als laatste een knop wordt geselecteerd waarna ik dus op enter kan drukken om de gegevens te verwerken. Dus tabvolgorde zoals onderstaand: cel A1, F5, B12, A6, en dan dus [knop 2] Als deze dan z'n focus heeft kan ik nog een keer op enter drukken en wordt de macro achter de knop uitgevoerd...

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Static lastCellIndex As Integer
    Dim Addresses_InOrder As Variant
    If Target.Count = 1 Then
        Addresses_InOrder = Array("$A$1", "$F$5", "$B$12", "$A$6")
        lastCellIndex = lastCellIndex + 1
        If lastCellIndex > UBound(Addresses_InOrder) Then _
        lastCellIndex = LBound(Addresses_InOrder)
        If lastCellIndex < LBound(Addresses_InOrder) Then _
        lastCellIndex = LBound(Addresses_InOrder)
        Application.EnableEvents = False
        Range(Addresses_InOrder(lastCellIndex)).Select
        Application.EnableEvents = True
    End If
End Sub

Groeten Mike
 
Aanvullende vraag op: Tabvolgorde aanpassen

Bovenstaande code werkt bij mij ook maar met uitzondering van aan paar cellen. Hier springt de cursor nog wel en wordt de array waardes niet gevolgd. Het blijkt dat Target.Count ook andere waardes dan 1 kan hebben. (nu heeft Target.count de waardes: 1, 10, 16, 85)

Mijn vraag is:
- Wat bepaald wat de waarde van Target.Count is??
 
Laatst bewerkt:
Target.Count heeft enkel als bedoeling dat de code slechts geactiveerd wordt als er maar 1 enkele cel geselecteerd wordt maw als je meerdere cellen selecteerd wordt de code niet uitgevoerd.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan