4.8k Aufrufe
Gefragt in Tabellenkalkulation von dutchi1972 Mitglied (419 Punkte)
vba bestimmte Reihenfolge Zellen anspringen

4 Antworten

0 Punkte
Beantwortet von dutchi1972 Mitglied (419 Punkte)
Ich würde gerne per VBA, Code....
das ich ein geschütztes Blatt , Bestimmte Zellen die frei gegeben sind in einer bestimmten Reihenfolge nach Enter drücken immer weiter springt.
Z.B. zuerst die A1 danach B5 , B2, A5 ...... und noch paar andere Zellen.

kann mir da einer evt. helfen oder eine Seite sagen wo eine Lösung steht

Danke im Voraus

Gruß Dutchi
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Dutschi,

Ausgangspunkt ist A1:

Private Sub CommandButton2_Click()
Dim Von, Nach, N
Von = Array("A1", "B5", "B2") 'wenn der Cursor hier steht
Nach = Array("B5", "B2", "A5") 'hüpft er nach dort
For N = 0 To UBound(Von)
If Von(N) = ActiveCell.Address(0, 0) Then
Range(Nach(N)).Select
Exit Sub
End If
Next N
ActiveCell.Offset(0, 1).Select 'legt fest wohin Tab normalerweise hüpft
End Sub

Selbst in Verwendung, aber natürlich nicht Marke Eigenbau (von irgendwo rauskopiert!).

schöne Grüße

Paul1
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Dutschi,
Code in das Codefenster der Tabelle einfügen.
Name vom Tabellenblatt und Zellen anpassen.

Gruß
fedjo

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Application.EnableEvents = False
Dim rgBereich As Range
Dim zaehler As Range
Set rgBereich = Worksheets("Tabelle1").Range("A1,B5,B2,A5")
For Each zaehler In rgBereich
If zaehler = "" Then
zaehler.Select
Exit For
End If
Next zaehler
Application.EnableEvents = True
End Sub
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Dutchi,

Nachtrag (hatte die Frage ursprünglich nicht genau gelesen):

In der Frage steht nach betätigen von Enter, da wäre dieses Makro (im Web recherchiert) besser geeignet als das in AW 2, um jedoch von Zelle zu Zelle navigieren zu können, muss in den Zellen irgendwas eingegeben werden.
Mit diesem Makro ist es aber auch möglich die Zellen nachträglich zu überschreiben ohne dass sich die Zellenreihenfolge ändert.


Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Address
Case "$A$1" 'Start in A1
Range("B5").Select 'Sprung nach B5
Case "$B$5"
Range("B2").Select
Case "$B$2"
Range("A5").Select
End Select
End Sub

Gemäß der Frage - Beginn in A1.

Schöne Grüße

Paul1
...