Clever-Excel-Forum

Normale Version: Unterbrechung des Sprung von Feld zu Feld?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo
 
im Excel-Blatt habe ich so programmiert, dass ich per Enter vom Feld (auch wenn leer ist) zu bestimmten Feld springen kann. Allerdings ich kann nicht das Sprung nicht unterbrechen, wenn ich nebenbei mal ein anderen Feld anklicken will, um dort etwas zu notieren, also ich muss mich erst zwangsläufig komplett bis zum Ende durchspringen lassen.
 
Wie kann ich entsprechend so programmieren, damit ich das Sprung unterbrechen kann? Siehe Code-Skript unten.
 
Im Voraus vielen Dank!
 
Herzliche Grüße
 
Martin
 

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
   Static strA As String
   Select Case strA
  
    Case "$U$2"
     Range("F3").Activate
  
    Case "$F$3"
     Range("C6").Activate
    
    Case "$C$6"
     Range("C7").Activate
     
    Case "$C$7"
     Range("C8").Activate
        
    Case "$C$8"
     Range("N6").Activate
    
    Case "$N$6"
     Range("N7").Activate
    
    Case "$N$7"
     Range("S6").Activate
   
    Case "$S$6"
     Range("S7").Activate
    
    Case "$S$7"
     Range("D11").Activate
   
    Case "$D$11"
     Range("D12").Activate
    
    Case "$D$12"
     Range("D13").Activate
       
    Case "$D$13"
     Range("D15").Activate
    
    Case "$D$15"
     Range("D16").Activate
     
    Case "$D$16"
     Range("D17").Activate
    
    Case "$D$17"
     Range("D18").Activate
    
    Case "$D$18"
     Range("D19").Activate
         
   End Select
   strA = ActiveCell.Address
End Sub
Hallöchen,

Du hast Deine Frage im Beispielbereich gepostet. Ich habe sie mal in den "Fragebereich" Smile verschoben.

Du kannst z.B. eine Msgbox mit den Buttons OK und Abbrechen programmieren und die Aktion entsprechend auswerten.

26865

Bau Dir einen Start- und einen Stop-Code:
Code:
Sub StopIt()
Application.EnableEvents = False
End Sub

Sub ComeOnAndPlay()
Application.EnableEvents = True
End Sub


Folgende Zeilen solltest du in deinem Code ergänzen:
Code:
Application.EnableEvents = False
bzw.
Code:
Application.EnableEvents = True

Grund: Jedes Aktivieren einer Zelle aktiviert den Code.
Hallo Martin,

probiere es mal mit folgendem Code:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
  Static strA As String
  Dim varB As Variant, varP As Variant
  varB = Split("U2,F3,C6,C7,C8,N6,N7,S6,S7,D11,D12,D13,D15,D16,D17,D18", ",")
  varP = Application.Match(Target.Address(0, 0), varB, 0)
  If Not IsError(varP) Then
    If varP <= UBound(varB) Then
      strA = varB(varP)
    Else
      strA = ""
    End If
  Else
    If Len(strA) Then
      Range(strA).Activate
    End If
  End If
End Sub

Zum (zwischenzeitlichen) Aussteigen mache einen Doppelklick auf die entsprechende Zelle.

Gruß Uwe