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

Tab Reihenfolge festlegen

Forumthread: Tab Reihenfolge festlegen

Tab Reihenfolge festlegen
05.05.2026 14:38:04
Edmund
Hallo, ich brauche mal wieder ein geübtes Auge, dass über meinen Code fliegt und mir meinen Fehler anzeigt :-)

Ich möchte in meinem geschützten Tabellenblatt " Eingabe " die Reihenfolge der Felder die mit Enter zu erreichen sind festlegen.
Die zu erreichenden Felder sind natürlich nicht geschützt.
D7, D8 und D9 werden korrekt angegangen, danach springt die Eingabe leider auf H14 usw. und nicht wie vorgeschrieben auf D10 usw.
Ich habe nachfolgenden Code in einem Forum gefunden und auf meine Belange abgeändert, wobei ich wahrscheinlich einen Fehler gemacht habe.
Den Code habe ich natürlich in Tabelle1"Eingabe" geschrieben

Sicherlich findet jemand den Fehler

vorerst einmal vielen Dank

Edmund


Private Sub Sheets_Eingabe(ByVal Target As Range)
Dim tabArray As Variant
Dim i As Long
tabArray = Array("D7", "D8", "D9", "D10", "D11", "D12", "D13", "D19", "D20", "D21")
Application.ScreenUpdating = False
For i = LBound(tabArray) To UBound(tabArray)
If tabArray(i) = Target.Address(0, 0) Then
If i = UBound(tabArray) Then
Me.Range(tabArray(LBound(tabArray))).Select
Else
Me.Range(tabArray(i + 1)).Select
End If
End If
Next i
Application.ScreenUpdating = True
End Sub
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tab Reihenfolge festlegen
05.05.2026 15:23:17
Uduuh
Hallo,
der Code gehört in eine
Private Sub Worksheet_SelectionChange(ByVal Target As Range)


End Sub

ansonsten wird er ignoriert.
Gruß aus'm Pott
Udo
Wenn du immer mit...
05.05.2026 16:14:51
Case
Moin Edmund, :-)

... Return/Enter/Tab die nächste vorgegebene Zelle erreichen willst, könntest du es doch auch so machen (ohne Code): ;-)
https://www.herber.de/bbs/user/180669.xlsx

Servus
Case
Anzeige
AW: Tab Reihenfolge festlegen
05.05.2026 15:27:49
Sigi.21
Hallo,

ich denke der Code ist besser im "Change-Ereignis aufgehoben:

Private Sub Worksheet_Change(ByVal Target As Range)


Gruß Sigi
Richtig! owT
05.05.2026 15:33:08
Uduuh
AW: Tab Reihenfolge festlegen
05.05.2026 19:55:10
Edmund
Hallo Udo,

vielen Dank, aber ich habe schon ein Private Sub Worksheet_Change in meinem VBA.
Ein zweites mag er nicht :-(
Ich habe dir einmal die Datei hochgeladen.
Der Code steht in Tabelle 1 (Eingabe) ganz unten und darüber mein Private Sub Worksheet_Change
mfg
Edmund

https://www.herber.de/bbs/user/180673.xlsm
Anzeige
AW: Tab Reihenfolge festlegen
05.05.2026 20:53:18
daniel
Hi
du darfst auch immer nur ein Change-Eventmakro gleichzeitig haben.
in dem Fall müsstest du die beiden Markos zu einem zusammen fassen.
so in etwa in dem Stil:

Wenn Zellebereich abc geändert wurde, dann mache dies:
wenn Zellbereich xyz geändert wurde, dann mache das:

oder etwas konkreter in VBA-Sprech

If Not Intersect(Target, Range("abc")) is nothing then

'--- hier der Code, der ausgeführt werden soll, wenn der Bereich abc geändert wurde
End if
if Not Intersect(Target, Range("xyz")) is nothing then
'--- hier der Code, der ausgeführt werden soll, wenn der Bereich xyz geändert wurde
end if


mehr kann ich dir dazu nicht sagen, weil du zwar die Datei hochgeladen hast, aber du hast leider nicht den Schutz für das VBA-Projekt aufgehoben oder uns zumindest das Passwort mitgeteilt, so dass wir keine Zugriff darauf haben.

Gruß Daniel
Anzeige
AW: Tab Reihenfolge festlegen
06.05.2026 11:41:43
Edmund
Sorry, Passwort lautet : provistar
AW: Tab Reihenfolge festlegen
06.05.2026 02:00:35
Uduuh
Hallo,
bei den Ereignisprozeduren gilt das Prinzip "es kann nur einen geben".
Leider ist das Projekt geschützt.

Meine Version:
In ein Modul:
Option Explicit

Public pObjSelD As Object

Sub Init_pObjSel()
Dim tabArray, i As Integer
Set pObjSelD = CreateObject("scripting.dictionary")
tabArray = Split("D7 D8 D9 D10 D11 D12 D13 D19 D20 D21 D7")
For i = 0 To UBound(tabArray) - 1
pObjSelD(tabArray(i)) = tabArray(i + 1)
Next i
End Sub

Im Tabellenblatt:
Private Sub Worksheet_Change(ByVal Target As Range)

Dim s As String
If pObjSelD Is Nothing Then Call Init_pObjSel
s = Target.Address(0, 0)
If pObjSelD.exists(s) Then Range(pObjSelD(s)).Select
'hier weiterer Code
End Sub


Gruß aus'm Pott
Udo
Anzeige
AW: Tab Reihenfolge festlegen
06.05.2026 11:40:37
Edmund
Ups, hatte gedacht ich habe es ausgeschaltet

Kein Problem, das Passwort für VBA lautet : provistar
AW: Tab Reihenfolge festlegen
06.05.2026 13:40:52
Uduuh
Hallo,
dein Worksheet_Change sieht dann so aus:
Private Sub Worksheet_Change(ByVal Target As Range)


Dim sAddr As String
Dim i As Long
If pObjSelD Is Nothing Then Call Init_pObjSel
sAddr = Target.Address(0, 0)
If pObjSelD.exists(sAddr) Then Range(pObjSelD(sAddr)).Select

'Button nach Denkmalschutz wird nur angezeigt wenn bei Eingabe Denkmalschutz auf Ja steht
If Target.Address = "$D$12" Then
Worksheets("Wert1914").ButtonNachDenkmalschutz.Visible = Target.Value = "Ja"
For i = 6 To 17
With Worksheets("Denkmalschutz").OptionButtons("Optionsfeld " & i)
If Target.Value = "Ja" Then
.Visible = True
Else
.Visible = False
.Value = xlOff
End If
End With
Next i
End If

'Wenn auf der Eingabeseite "Neubau" steht dann werden die Prämiensätze auf der Seite "Vorbelegung" gelöscht
If Sheets("Eingabe").Range("G11") = "Neubau" Then
With Sheets("Vorbelegung")
.Unprotect
.Range("J5:K5").Value = ""
.Range("C12:C13").Value = ""
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End With
End If

End Sub


Und in einem Modul:
Option Explicit

Public pObjSelD As Object

Sub Init_pObjSel()
Dim tabArray, i As Integer
Set pObjSelD = CreateObject("scripting.dictionary")
tabArray = Split("D7 D8 D9 D10 D11 D12 D13 D19 D20 D21 D7")
For i = 0 To UBound(tabArray) - 1
pObjSelD(tabArray(i)) = tabArray(i + 1)
Next i
End Sub


Gruß aus'm Pott
Udo
Anzeige
AW: Tab Reihenfolge festlegen
06.05.2026 19:57:13
Edmund
vielen lieben Dank, es funktioniert einwandfrei

Habe das Private Sub Worksheet_Change überschrieben und ein neues Modul angelegt.

Nochmals sorry, dass ich das Passwort vergessen habe und du noch einmal ran musstest.

Edmund
AW: Richtig! owT
05.05.2026 19:53:13
Edmund
Hallo Sigi,

vielen Dank, aber ich habe schon ein Private Sub Worksheet_Change in meinem VBA.
Ein zweites mag er nicht :-(
Ich habe dir einmal die Datei hochgeladen.
Der Code steht in Tabelle 1 (Eingabe) ganz unten und darüber mein Private Sub Worksheet_Change
mfg
Edmund

https://www.herber.de/bbs/user/180673.xlsm
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18