Avatar billede Hestehat Seniormester
12. juni 2023 - 22:38 Der er 3 kommentarer

Tab rækkefølge

Hej,

Jeg kæmper lidt med at få excel til at makke ret.

Jeg har et ark, som er låst for redigering, så det kun er udvalgte celler der kan redigeres. Sådan lige for eksemplets skyld, så er det for eksempel:
A1
A3
B2
B4
Der er åbne.

Når jeg står i celle A1 og trykker på TAB knappen, så hopper Excel til A3.
Er der nogen måde man kan ændre på den måde Tab virker i Excel? Jeg vil gerne kunne styre hvad rækkefølge excel hopper videre, så rækkefølgen for eksempel er A1, B4, B2, A3, når man tabber rundt i arket.

Jeg har fundet nogen stumper VBA koder, men det lader ikke til at virke Excel 2019.

--Svend
Avatar billede Tom K. Forsker
12. juni 2023 - 22:59 #1
Hej --Svend.

Prøv denne kode stump i en kopi-fil.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        Range("B4").Select
    ElseIf Not Intersect(Target, Range("B4")) Is Nothing Then
        Range("B2").Select
    ElseIf Not Intersect(Target, Range("B2")) Is Nothing Then
        Range("A3").Select
    ElseIf Not Intersect(Target, Range("A3")) Is Nothing Then
        Range("A1").Select
    End If
End Sub

mvh
Tom K.
Avatar billede Hestehat Seniormester
20. juni 2023 - 23:03 #2
Hej Tom,

Beklager at det har taget lidt tid at svare; Kode stumpen gør helt sikkert noget, men jeg kan ikke lige blive klog på præcis hvordan den virker.

Jeg har ændret lidt i den og den set nu således ud:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("D5")) Is Nothing Then
        Range("D9").Select
    ElseIf Not Intersect(Target, Range("D9")) Is Nothing Then
        Range("D11").Select
    ElseIf Not Intersect(Target, Range("D11")) Is Nothing Then
        Range("D17").Select
    ElseIf Not Intersect(Target, Range("D17")) Is Nothing Then
        Range("d19").Select
    End If
End Sub

Problemet er at den tilsyneladende kører den helt igennem, så når jeg vælger celle D5, så køre den kodestumpen igennem og lander i D19. Det skulle gerne være sådan at koden bliver trigget af at man trykker på tab.

Hvad siger du til det?

--Svend
Avatar billede Tom K. Forsker
21. juni 2023 - 06:11 #3
Hej Svend.
Jeg indrømmer gerne at VBA koden ikke er min største spids kompetence, jeg er nok nærmest novice på området.

Men du kan prøve denne stump og se om den kan hjælpe dig på vej.


Private Sub Worksheet_Activate()
    Application.OnKey "{TAB}", "ChangeTabOrder"
End Sub

Private Sub Worksheet_Deactivate()
    Application.OnKey "{TAB}"
End Sub

Sub ChangeTabOrder()
    If ActiveCell.Address = "$A$1" Then
        Range("B4").Select
    ElseIf ActiveCell.Address = "$B$4" Then
        Range("B2").Select
    ElseIf ActiveCell.Address = "$B$2" Then
        Range("A3").Select
    ElseIf ActiveCell.Address = "$A$3" Then
        Range("A1").Select
    Else
        ' Standard tabulering
        SendKeys "{TAB}"
    End If
End Sub

Mvh
Tom K.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester