Clever-Excel-Forum

Normale Version: VBA Nachfrage - Erweiterung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Leute,
ich nutze diesen VBA Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(False, False) = "D16" Then Range("E31").Activate
    If Target.Address(False, False) = "E31" Then Range("E32").Activate
    If Target.Address(False, False) = "E32" Then Range("F32").Activate
    If Target.Address(False, False) = "F32" Then Range("E18").Activate
    If Target.Address(False, False) = "E18" Then Range("M35").Activate
    If Target.Address(False, False) = "M35" Then Range("K36").Activate
    If Target.Address(False, False) = "K36" Then Range("M37").Activate
    If Target.Address(False, False) = "K37" Then Range("K38").Activate
    If Target.Address(False, False) = "K38" Then Range("L38").Activate
    If Target.Address(False, False) = "L38" Then Range("D16").Activate

End Sub
es ist auch alles ok damit. Nun meine Frage, wenn in E32 schon die richtige Stadt drin steht z.B. Berlin, 
kann ich per Return nicht weiter zur nächsten Zelle springen, sondern muss Berlin neu reinschreiben, bestätigen
dann wird die nächste Zelle angesprochen. Ist es möglich, wenn Zelle OK. dann Return zur nächsten Zelle.
Ich habe bei Goggle nichts dergleichen gefunden.
Danke Gruß Phoeni
Hallo Phoeni,

schau dir einmal unter VBA das Select Case statement an.
Hallo

Du könntest 1x F2 drücken und dann Return


UweD
Danke für Eure Hilfe, jedoch ist mit F2 nicht das was ich gesucht habe und mit VBA Select kenn ich mich nun gar nicht aus.
Trotzdem Danke
Hallo Phoeni,

hier mal Ego's Vorschlag in die Praxis umgesetzt:
Testseite für VBA-Umsetzung nach HTML
[Cc]


Private Sub Worksheet_Change(ByVal Target As Range)
  Dim sAdr As String

  sAdr = Target.Address(0, 0)
  Select Case sAdr
  Case "D16": Range("E31").Activate
  Case "E31": Range("E32").Activate
  Case "E32": Range("F32").Activate
  Case "F32": Range("E18").Activate
  Case "E18": Range("M35").Activate
  Case "M35": Range("K36").Activate
  Case "K36": Range("M37").Activate
  Case "K37": Range("K38").Activate
  Case "K38": Range("L38").Activate
  Case "L38": Range("D16").Activate
  Case Else  ' 'nix tun
  End Select
End Sub

viele Grüße von
L u s c h i  aus klein-Paris
Hallo Luschi,
DANKE für die Hilfe. 
Folgendes, wenn ich in D16 etwas eingebe, springt er auf E31, gebe ich in E31 nichts ein nur mit Return bestätige, springt er auf E32, heißt zwischen E31  und E32 funktioniert es. 
Gebe ich in E32 nichts ein, springt er nur zur darunterliegende Zelle E33.

Wo oder wie kann ich das ändern?
Gruß Phoeni
Hallöchen,

wenn Du in E32 ewas eingibst, auch nix, solltest Du in F32 rauskommen.

Case "E32": Range("F32").Activate

Wenn Du jedoch nicht etwas eingibst, dann kommst Du in der im Excel eingestellten Richtung weiter.

Wenn Du E33 überhaupt nicht benötigst, kannst Du generell beim Wechsel nach E33 per Code nach F32 gehen.

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$E$33" Then Range("F32").Activate
End Sub
Hallo,
" wenn Du in E32 ewas eingibst, auch nix, solltest Du in F32 rauskommen" 
wenn ich in E31 nichts- oder etwas eingebe, springt er zu E32, das ist ok und auch so prima.
Von E32 MUSS ich etwas eingeben und mit Return bestätigen dann springt er auf F32. 
Gebe ich in E32 nix ein geht er eine Zeile tiefer, so verhält es sich auch mit den anderen Zellen.
Grüße Phoeni
... sag ich doch ...
Ich gebe zuerst in 1 etwas ein, springt auf 2, in 2 steht jetzt aber schon die richtige Straße (Pyrmonter Straßer) drin, möchte ich nur mit Return bestätigen und in 3 landen, steht in 3 auch schon die richtige PLZ (30459 oder andere) möchte ich auuch ier nur mit Return bestätigen und in 4 landen, steht da schon die richtige Stadt drinn.... gehts wweiter.
Ich denke mir, ich habe mich missverständlich ausgedrückt - sorry
Seiten: 1 2