Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Von Zelle zu Zelle springen mittels "TAB"

Von Zelle zu Zelle springen mittels "TAB"
24.07.2017 20:45:14
Becker
Hallo zusammen,
ich benötige eure Hilfe für ein bestimmtes Makro.
Beim Drücken der "TAB-Taste" möchte ich gerne von einer ausgewählten Zelle in eine bestimmte Zelle springen.
Beispiel:
Zelle B1 ist ausgewählt, wenn ich jetzt TAB drücke, möchte ich zu Zelle D2 springen und diese soll dann ausgewählt sein. Habe ich aber in meinem Arbeitsblatt C1 ausgewählt, dann möchte ich mittels TAB zu E2 gelangen.
Gibt es dazu Lösungsvorschläge?
Vielen lieben Dank im Voraus.
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Von Zelle zu Zelle springen mittels "TAB"
25.07.2017 09:17:20
yummi
Hallo Becker,
das kannst Du über den Blattschutz realisieren, Die zellen, die angesprungen werden dürfen nicht sperren und dann im Blattaschutz festlegen, Benutzer dürfen gesperrte Zellen nicht auswählen
Gruß
yummi
AW: Von Zelle zu Zelle springen mittels "TAB"
25.07.2017 10:37:56
Becker
Hallo yummi,
danke erstmal für die schnelle Antwort. Ja über den Blattschutz kann man das meist regeln. Aber nicht im meinen Beispiel :-(...
Deswegen habe ich meine Datei beigefügt.
https://www.herber.de/bbs/user/115032.xlsx
Ich möchte das folgende TAB-Reihenfolge ist.
AB3-F9-AB9-G11-J15-J17-AD15-AD17-J22-J24-J26-I40-R40-I47-R47-I50-R50-I53-R53-I62-R62-I69-R69-I76-I83-I90-R90-I97-R97
Die entsprechenden Zellen sind nicht gesperrt. Leider springt man nicht von Zelle zu Zelle. Problematik hierbei sicherlich die verbundenen Zellen bzw. manchmal soll Spalte vor Zeile vorgehen beim Zellensprung.
Z.B. bei Zelle AB9 geht es beim Drücken mit TAB nicht weiter mit den Sprung.
Ich hoffe, ihr könnt mir helfen...
VG Markus
Anzeige
AW: Von Zelle zu Zelle springen mittels "TAB"
25.07.2017 13:22:27
mmat
Hi,
so geht sowas grundsätzlich, leider ist diese Lösung nicht sehr schön.
- Das Makro reagiert auf jeden Wechsel der Auswahl, also auch solche, die von der Enter-Taste oder der Maus ausgelöst werden.
- Leider kann man hier nur das Ziel des Auswahlwechsels feststellen. Ich hätte es lieber an der Quelle aufgehängt.
Daher m. E. für die breite Masse eher ungeeignet (Versuch mal was in B5 zu schreiben :-) ).
' Im Code der Arbeitsmappe
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count  1 Then Exit Sub
' A5 ist ein Eingabefeld, mit der Tab-Taste landet der Cursor in B5
' Das nächste Eingabefeld is E7
If Target.Address = ("$B$5") Then Cells(7, 5).Select: Exit Sub
' ... viele weitere Zeilen dieser Art
End Sub

Anzeige
AW: Von Zelle zu Zelle springen mittels "TAB"
25.07.2017 13:54:28
Rudi
Hallo,
in ein allg. Modul:
Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Im Klassenmodul der Tabelle:
Dim rngOld As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim x, strTab As String
Dim vArr, vPos
strTab = "AB3-F9-AB9-G11-J15-J17-AD15-AD17-J22-J24-J26-I40-R40-I47-R47-I50-R50-I53-R53-I62- _
R62-I69-R69-I76-I83-I90-R90-I97-R97-AB3"
vArr = Split(strTab, "-")
If vArr(0)  vArr(UBound(vArr)) Then
'damit der Kreislauf funktioniert
ReDim Preserve vArr(0 To UBound(vArr) + 1)
vArr(UBound(vArr)) = vArr(0)
End If
x = GetAsyncKeyState(&H9)
If CBool(x And &H8000) Then
If Not rngOld Is Nothing Then
vPos = Application.Match(rngOld.Address(0, 0), vArr, 0)
If Not IsError(vPos) Then
Application.EnableEvents = False
Range(vArr(vPos)).Select
Application.EnableEvents = True
End If
End If
End If
Set rngOld = ActiveCell
End Sub
Gruß
Rudi
Anzeige
AW: Von Zelle zu Zelle springen mittels "TAB"
25.07.2017 14:33:48
Becker
Tausend Dank!!!
AW: Von Zelle zu Zelle springen mittels "TAB"
26.07.2017 14:54:23
Becker
Hallo zusammen,
ich habe das Marko eingefügt. Der Wechsel zur nächsten Zelle erfolgt mit TAB in der richtigen Reihenfolge. Leider habe ich dann beim Testen ein paar Schwierigkeiten die nächste Zelle anzusteuern.
Wenn ich die Zelle beschreibe und dann mit TAB zur nächsten Zelle wechseln will, wird teils zu einer anderen Zelle gesprungen.
Beispiel: Ich beschreibe Zelle AB9 und drücke TAB und er springt zurück zu Zelle F9 anstatt zur Zelle G11 zu springen. Dieses Problem tritt, wie gesagt nur wenn die Zelle beschrieben wird auf. Könnte sicherlich an den verbundenen Zellen liegen oder?
Anbei meine Maske mit dem entsprechenden Marko.
https://www.herber.de/bbs/user/115067.xlsm
Bitte nochmal um Hilfe. Vielen lieben Dank.
MFG Markus
Anzeige
AW: Von Zelle zu Zelle springen mittels "TAB"
26.07.2017 14:55:32
Becker
Hallo zusammen,
ich habe das Marko eingefügt. Der Wechsel zur nächsten Zelle erfolgt mit TAB in der richtigen Reihenfolge. Leider habe ich dann beim Testen ein paar Schwierigkeiten die nächste Zelle anzusteuern.
Wenn ich die Zelle beschreibe und dann mit TAB zur nächsten Zelle wechseln will, wird teils zu einer anderen Zelle gesprungen.
Beispiel: Ich beschreibe Zelle AB9 und drücke TAB und er springt zurück zu Zelle F9 anstatt zur Zelle G11 zu springen. Dieses Problem tritt, wie gesagt nur wenn die Zelle beschrieben wird auf. Könnte sicherlich an den verbundenen Zellen liegen oder?
Anbei meine Maske mit dem entsprechenden Marko.
https://www.herber.de/bbs/user/115067.xlsm
Bitte nochmal um Hilfe. Vielen lieben Dank.
MFG Markus
Anzeige
AW: Von Zelle zu Zelle springen mittels "TAB"
31.07.2017 09:46:08
Becker
Keiner einen entsprechenden Lösungsvorschlag?
MfG Markus

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Von Zelle zu Zelle springen mit der TAB-Taste in Excel


Schritt-für-Schritt-Anleitung

Um in Excel mit der TAB-Taste von Zelle zu Zelle zu springen, kannst du ein einfaches VBA-Makro verwenden. Folge diesen Schritten:

  1. Öffne deine Excel-Datei.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Füge im Projekt-Explorer ein neues Modul hinzu:

    • Rechtsklick auf "VBAProject (dein Dokument)" > Einfügen > Modul.
  4. Kopiere und füge den folgenden Code in das Modul ein:

    Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    
    Dim rngOld As Range
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        Dim x, strTab As String
        Dim vArr, vPos
        strTab = "AB3-F9-AB9-G11-J15-J17-AD15-AD17-J22-J24-J26-I40-R40-I47-R47-I50-R50-I53-R53-I62-R62-I69-R69-I76-I83-I90-R90-I97-R97-AB3"
        vArr = Split(strTab, "-")
        If vArr(0) <> vArr(UBound(vArr)) Then
            ReDim Preserve vArr(0 To UBound(vArr) + 1)
            vArr(UBound(vArr)) = vArr(0)
        End If
        x = GetAsyncKeyState(&H9)
        If CBool(x And &H8000) Then
            If Not rngOld Is Nothing Then
                vPos = Application.Match(rngOld.Address(0, 0), vArr, 0)
                If Not IsError(vPos) Then
                    Application.EnableEvents = False
                    Range(vArr(vPos)).Select
                    Application.EnableEvents = True
                End If
            End If
        End If
        Set rngOld = ActiveCell
    End Sub
  5. Schließe den VBA-Editor und kehre zu deiner Excel-Datei zurück.

  6. Teste das Makro, indem du die TAB-Taste drückst, um zu den angegebenen Zellen zu springen.


Häufige Fehler und Lösungen

  • Fehler: Excel springt nicht zur nächsten Zelle.

    • Lösung: Stelle sicher, dass die Zellen, zu denen gesprungen werden soll, nicht gesperrt sind. Überprüfe auch, ob die TAB-Reihenfolge korrekt im VBA-Code definiert ist.
  • Fehler: TAB-Taste funktioniert nicht.

    • Lösung: Überprüfe, ob die TAB-Taste auf deiner Tastatur funktioniert. Teste sie in einem anderen Programm oder in einer anderen Excel-Datei.
  • Fehler: Wenn ich eine Zelle beschreibe und TAB drücke, springt Excel in eine andere Zelle.

    • Lösung: Dies kann an verbundenen Zellen liegen. Überprüfe die Zellverknüpfungen und stelle sicher, dass die Zellen ordnungsgemäß eingerichtet sind.

Alternative Methoden

  1. Blattschutz verwenden: Du kannst den Blattschutz aktivieren und die Zellen, die nicht bearbeitet werden dürfen, sperren. Dadurch wird der Sprung zur nächsten Zelle besser kontrolliert.

  2. Direktes Springen ohne VBA: Du kannst auch die F2-Taste (Bearbeiten) verwenden, um in eine Zelle zu springen, und dann mit Enter oder TAB zur nächsten Zelle zu wechseln.

  3. Formeln nutzen: In bestimmten Fällen kann die Verwendung von Formeln helfen, um Daten in andere Zellen zu ziehen, anstatt manuell zu springen.


Praktische Beispiele

  1. Beispiel 1: Wenn Zelle B1 ausgewählt ist und du die TAB-Taste drückst, soll es zu Zelle D2 weitergehen:

    • Füge die entsprechenden Zellen in die strTab-Variable im VBA-Code ein.
  2. Beispiel 2: Bei einer komplexen Tabelle mit verbundenen Zellen:

    • Achte darauf, dass die Reihenfolge der Sprünge in der strTab-Variable festgelegt wird, um unerwünschte Sprünge zu vermeiden.

Tipps für Profis

  • Verwende benannte Bereiche: Definiere benannte Bereiche für die Zellen, zu denen du springen möchtest. Dies kann die Lesbarkeit deines VBA-Codes verbessern.

  • Fehlerbehandlung einbauen: Füge Fehlerbehandlungen in dein Makro ein, um unerwartete Situationen abzufangen und die Benutzererfahrung zu verbessern.

  • Makros optimieren: Teste und optimiere dein Makro regelmäßig, um sicherzustellen, dass es effizient funktioniert.


FAQ: Häufige Fragen

1. Wie kann ich die TAB-Reihenfolge in Excel festlegen?
Du kannst die TAB-Reihenfolge in Excel festlegen, indem du die Zellen in einer bestimmten Reihenfolge in der strTab-Variable im VBA-Code definierst.

2. Warum springt Excel nicht zur gewünschten Zelle?
Das kann an gesperrten Zellen oder an verbundenen Zellen liegen. Überprüfe die Zellverknüpfungen und den Blattschutz.

3. Funktioniert das Makro in allen Excel-Versionen?
Ja, das Makro sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen. Achte darauf, dass die Makros aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige