Microsoft Excel

Herbers Excel/VBA-Archiv

Zeilensprung in VBA abfangen


Betrifft: Zeilensprung in VBA abfangen
von: Johannes
Geschrieben am: 01.12.2018 13:07:44

Hallo liebes Forum,

ich habe ein geschütztes Blatt, durch das der User mit den Pfeiltasten navigiert um Eingaben vorzunehmen. Wenn die äußerste rechte Zelle erreicht ist, bewirkt die Taste "Pfeil nach rechts" einen Zeilensprung.

Kann ich den in VBA abfangen? Ich würde dann nämlich gerne das nächste Tabellenblatt öffnen und den Cursor korrekt plazieren um weitere Eingaben komfortabel möglich zu machen.

Viele Grüße,
Johannes

  

Betrifft: AW: Zeilensprung in VBA abfangen
von: onur
Geschrieben am: 01.12.2018 16:33:14

Angenommen, du fängst mit Tabelle1 an und willst, dass es mit Tabelle2 ("A1") weitergeht, wenn Spalte 11 erreicht wurde - dann muss im Selection_Change-Ereignis von Tabelle1 stehen:

If Target.Column>10 then
   Tabelle2.Activate
   Range("A1").Select
End If



  

Betrifft: AW: Zeilensprung in VBA abfangen
von: Johannes
Geschrieben am: 01.12.2018 16:42:50

Vielen Dank onur, aber die letzte editierbare Spalte ändert sich immer dynamisch, daher geht der Ansatz so nicht. Das Ereignis des Zeilensprungs an sich müsste ich abfangen, oder jemand hat noch einen anderen Ansatz...


  

Betrifft: AW: Zeilensprung in VBA abfangen
von: onur
Geschrieben am: 01.12.2018 16:44:43

Wie wird denn der "Zeilensprung" generiert?


  

Betrifft: AW: Zeilensprung in VBA abfangen
von: Johannes
Geschrieben am: 01.12.2018 17:01:42

Wie gesagt: Der User gibt linear, Zelle für Zelle, immer in der gleichen Zeile bleibend, Daten ein. Ob er die Dateneingabe mit oder mit der - Taste abschließt weiß man nicht. Wenn er die Eingabe in der letzten Zelle der aktuellen Zeile beendet, springt der Cursor leider automatisch in die nächste Zeile ganz an den Anfang.

Das würde ich gerne abfangen und dann per VBA blättern, damit die Eingabe einfach weitergehen kann.


  

Betrifft: AW: Zeilensprung in VBA abfangen
von: Johannes
Geschrieben am: 01.12.2018 17:03:37

oh, er hat "Enter" und "Pfeil nach rechts" verschluckt, weil ich das Größer-/ Kleinerzeichen benutzt habe. Sorry!

Es sollte heißen:

Ob er die Dateneingabe mit "Enter" oder mit der "Pfeil nach rechts" - Taste abschließt weiß man nicht.


  

Betrifft: AW: Zeilensprung in VBA abfangen
von: onur
Geschrieben am: 01.12.2018 17:18:19

Meinst du sowas?
http://www.herber.de/bbs/user/125809.xlsm


  

Betrifft: AW: Zeilensprung in VBA abfangen
von: Johannes
Geschrieben am: 01.12.2018 18:13:59

Der Gedanke ist gut, aber auf diese Weise wird ja jedes Selection Change Ereignis als Auslöser genutzt. Wenn der User in eine andere Zelle klickt, wird es auch ausgelöst. Selection Change macht außerdem alles langsamer, weshalb ich es am Liebsten vermeiden würde.

Wahrscheinlich ist mein Wunsch nicht umsetzbar, ich ahne es schon...


  

Betrifft: AW: Zeilensprung in VBA abfangen
von: onur
Geschrieben am: 01.12.2018 18:17:22

"Wenn der User in eine andere Zelle klickt, wird es auch ausgelöst" - Blödsinn!
Nur wenn sich die ZEILE ändert.
Hast du die Datei getestet?


  

Betrifft: AW: Zeilensprung in VBA abfangen
von: Johannes
Geschrieben am: 01.12.2018 22:50:12

Hallo nochmal,
vielen Dank, dass du dir für mein Problem Zeit genommen hast!

Ja, ich habe die Datei getestet und finde den Gedanken wie gesagt gut, es gibt jedoch viele "abers":
- wenn in eine andere Zelle (in einer anderen Zeile) geklickt wird, wird das Ereignis ausgelöst
- wenn der Cursor eine Zeile auf oder ab bewegt wird, ebenso
- das "Selection Change" Ereignis löst mit jeder Cursorbewegung aus! Ich vermeide es daher wenn ich kann. Damit wird das Scrollen durch das Blatt mittels der Pfeiltasten verlangsamt.

Wenn man das Ereignis nicht abfangen kann, muss ich wohl oder übel mit der Einschränkung leben. Dir trotzdem vielen Dank!


  

Betrifft: AW: Zeilensprung in VBA abfangen
von: onur
Geschrieben am: 02.12.2018 00:19:48

Dein Problem schreit geradezu nach dem Selection_Change-Ereignis.
Aber wenn du als Experte meinst, dass das Excel verlangsamt (ich habe es gemessen,: nicht messbar, da kleiner als 1 ms), und noch nicht mal die Datei postest, musst du halt dein Problem anders lösen.


  

Betrifft: AW: Zeilensprung in VBA abfangen
von: Matthias L
Geschrieben am: 01.12.2018 18:15:26

Hasllo

Schon vor der ersten Antwort von onur hatte ich mir Deine Frage angeschaut.
Deine Angaben aber ehrlich gesagt bezweifelt.
Wenn der Zellschutz korrekt gesetzt ist und das Blatt geschützt ist gibt es keinen Zeilensprung
Der Cursor würde nicht in eine andere Zeile springen, sondern in die erste freie Zelle der gleichen Zeile.

Anscheinend hast Du aber in den Blattschutzoptionen zugelassen das der Benutzer auch gesperrte Zellen auswählen darf.

Gruß Matthias


  

Betrifft: AW: Zeilensprung in VBA abfangen
von: Johannes
Geschrieben am: 01.12.2018 22:41:20

Hallo Matthias,

Anscheinend hast Du aber in den Blattschutzoptionen zugelassen das der Benutzer auch gesperrte Zellen auswählen darf.

nein, wenn ich das so eingestellt hätte, dann würde der Cursor ja ganz einfach in der Zeile weiter nach rechts wandern.

Schade, dass du mir nicht glaubst. Mir fällt kein Grund ein, warum ich mir das ausdenken sollte. Wenn es bei dir nicht so ist, dann muss es an meinen Einstellungen liegen. Hast du es schon ausprobiert?


  

Betrifft: AW: Zeilensprung in VBA abfangen
von: Matthias L
Geschrieben am: 02.12.2018 02:08:54

Hallo

Dann hast Du meine Antwort nicht verstanden.

Gruß Matthias