Excel Coursor rechts und unten

Dieses Thema Excel Coursor rechts und unten im Forum "Microsoft Office Suite" wurde erstellt von Bulli, 22. Jan. 2003.

Thema: Excel Coursor rechts und unten Hallo, ich habe mir eine Vorlagendatei erstellt. Jetzt muß ich für die Bearbeitung auf dem einen Registerblatt mit...

  1. Hallo,
    ich habe mir eine Vorlagendatei erstellt. Jetzt muß ich für die Bearbeitung auf dem einen Registerblatt mit Courser rechts arbeiten und bei einem anderen Registerblatt Cursor unten. Kann man es so einstellen, dass Excel automatisch bei Wechsel von einem auf das andere Blatt die Umstellung im Hintergrund erledigt?

    Danke
     
  2. Ola,

    das hab ich nicht verstanden ::)
     
  3. Ja war vielleich etwas unglücklich ausgedrückt. Ich meine die Einstellung unter Extras; Optionen; Registerkarte Bearbeiten die Einstellung >Markierung nach dem Drücken der Eingabetaste verschieben< Dort kann man nun alle möglichen Richtungen für die Bearbeitung einstellen. Diese Einstellung gilt aber für die ganze Arbeitsmappe. Ich möchte nun in meiner Vorlage; meinetwegen auf Tabellenblatt1, nach betätigen der Eingabetaste in der Zeile nach rechts weiterarbeiten und auf Tabellenblatt2 in der Spalte nach unten. Ich möchte es aber nicht immer über Extras; Optionen umstellen. Excel soll das für mich im Hintergrund erledigen, wenn ich von dem Einen auf das Andere Tabellenblatt wechsel. Ich hoffe mein Problem ist nun etwas klarer geworden.
     
  4. Ola,

    gut erklärt ist halb gelöst!

    Öffne nach einem Klick mit der rechten Maustaste auf das Tabellenregister der ersten Tabelle mit dem Befehl Code anzeigen.
    Trage dort nachfolgenden Code ein:
    Private Sub Worksheet_Activate()
    Application.MoveAfterReturnDirection = xlToRight
    End Sub
    Wiederhole den Schritt für das andere Arbeitsblatt, verwende dort folgenden Code:
    Private Sub Worksheet_Activate()
    Application.MoveAfterReturnDirection = xlDown
    End Sub

    Unmittelbar danach reagiert Excel wie gewünscht.

    Das beschriebene Verfahren hat aber den Nachteil, dass die Einstellung der zuletzt besuchten Tabelle ab sofort als Einstellung für alle anderen Tabellenblätter und Mappen gilt.

    Vielleicht hat ja einer von den Profis noch eine Idee, wie man beim Wechseln in das Blatt die Einstellung abfragt und ablegt und beim Verlassen des Blatts die vorgefundene Einstellung rekonstruiert (Wenn das überhaupt geht)
     
  5. Hi,

    gut erklärt ist halb gelöst ;D

    Man muß den Wert halt beim Öffnen der Arbeitsmappe speichern und beim Verlassen wieder zurücksetzen.

    Also erstmal einen Merker erzeugen

    Zum speichern einer Variablen benötigen man ein Modul. (VB-Editor->rechte Maustaste auf VBAProjekt->einfügen->Modul)
    Modul öffnen (z.B. Doppelklick auf Modul1)
    öffentliche Variable einfügen z.B.
    Code:
    Public l_merker As Long
    
    Nun die Prozedur einfügen, die beim Öffnen der Arbeitsmappe den allgemeinen Wert in dieser Variablen speichert.
    Dazu im VB-Editor 'Diese Arbeitsmappe' doppelt klicken.
    Es öffnet sich das Fenster von 'Diese Arbeitsmappe'.
    Oben links im Fenster in der Auswahlbox 'workbook' auswählen. Im Code-Fenster 'Diese Arbeitsmappe' den folgenden Code eingeben:

    Code:
    Private Sub Workbook_Open()
     l_merker = Application.MoveAfterReturnDirection
    End Sub
    
    Das ganz speichern.

    Jetzt wird beim Öffnen der Mappe der allgemeine Wert in l_merker gespeichert.

    Arbeitsmappe schliessen.
    Arbeitsmappe wieder öffnen. Nun ist der Makro schon aktiv geworden und hat den allgemeinen Wert in der Variablen gespeichert.

    Jetzt die Prozeduren einfügen, die beim Schliessen der Arbeitsmappe den Wert der Variablen in den allgemeinen Wert zurückschreibt.

    Dazu wieder im VB-Editor 'Diese Arbeitsmappe' doppelt klicken.
    Es öffnet sich das Fenster von 'Diese Arbeitsmappe'.
    Oben links im Fenster in der Auswahlbox 'workbook' auswählen. Im Code-Fenster 'Diese Arbeitsmappe' den folgenden Code eingeben:

    Code:
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
     Application.MoveAfterReturnDirection = l_merker
    End Sub
    

    Jetzt die Makros in die Tabellenblätter einfügen, wie es PCDJoe beschrieben hat und fertig :D :D :D

    Gruß Matjes :)
     

    Anhänge:

  6. Ola,

    das ist gut ...

    Ich hatte ja die Hoffnung, das es schon beim Wechsel der Tabellenblätter oder ziwschen Mappengeht.

    Wenn ich innerhalb der Mappe mehrere Tabellenblätter habe, ist es noch einfach zu lösen: Jedes Blatt wird beim Betreten auf die gewünschte Richtung gesetzt.

    Wenn ich nun aber mit zwei Mappen parallel arbeite, bekommt nun auch die Neue Mappe die zuletzt genutzte Richtung ... Lässt sich das abstellen, bsp wenn der Focus auf die andere Mappe wechselt?
     
  7. Hi,

    auch das geht :D

    Aber auch da braucht man im Modul eine Variable für jedes Tabellenblatt, bei dem man den eingestellten Standardwert verändern will.

    Modul (als Beispiel für Funktion in Tab1 und 2)
    Code:
    Public l_merker As Long   'Merker global
    Public l_merker_Tab1 As Long 'Merker bzgl. Tabelle 1
    Public l_merker_Tab2 As Long 'Merker bzgl. Tabelle 2
    
    Code Tabelle1(z.B. nach unter verlassen):
    Code:
    Private Sub Worksheet_Activate()
     l_merker_Tab1 = Application.MoveAfterReturnDirection
     Application.MoveAfterReturnDirection = xlDown
    End Sub
    
    Private Sub Worksheet_Deactivate()
     Application.MoveAfterReturnDirection = l_merker_Tab1
    End Sub
    
    Code Tabelle2 (z.B. links verlassen):
    Code:
    Private Sub Worksheet_Activate()
     l_merker_Tab2 = Application.MoveAfterReturnDirection
     Application.MoveAfterReturnDirection = xlLeft
    End Sub
    
    Private Sub Worksheet_Deactivate()
     Application.MoveAfterReturnDirection = l_merker_Tab2
    End Sub
    
    Gruß Matjes :)
     
  8. Ola,

    das gefällt mir noch besser ;D

    Ist auch noch das Problem zu lösen, wenn ein neues Blatt eingefügt wird?


    (Ich weiß, ich bin unverschämt neugierig und lernwillig ;D )
     
  9. @PCDJoe: Erstmal passiert nichts, wenn Du ein neues Blatt einfügst ;D ausser das halt ein weiteres Blatt in der Mappe zu sehen ist.
    Sorry, was meinst Du genau damit ? Welches Problem ? Makros automatisch eintragen ? ???

    Gruß Matjes :)
     
  10. Ola,

    ich weiß auch nicht genau ;D.

    Mich hat das Probelm beschäftigt, welche Richtung ein neues Blatt einschlägt.
    Dann kam mir der Gedanke, obe man beim Einfügen eines neuen Blatts abfragen kann, welche Richtung dort bevorzugt wird und dann das Makro zu erzeugen.

    Ich nehme mal an, dass es relativ leicht ist, eine Art Container für die möglichen 256 Blätter bereitzuhalten, so dass man zentral einen Platz für die Variablen hätte und dann auch wüsste, welche Variable für das neue Blatt zuständig ist.

    Dann taucht die Frage uaf, wie man den Quellcode in das neue Blatt kriegt.

    (Du merkst, ich versuche das Prinzip zu lernen ... das Problem mit den Richtungen für die Entertaste ist ja nur eine Variante von vielen praktischen Lösungen, die so realisiert werden könnten).

    Bin gespannt wie es weiter geht. (Artikelthema ist schon als Vorschlag eingereicht )
     
Die Seite wird geladen...

Excel Coursor rechts und unten - Ähnliche Themen

Forum Datum
Excel-Feature gesucht Microsoft Office Suite 11. Okt. 2016
Excel Tabelle Werte zu ordnen Microsoft Office Suite 23. Sep. 2016
Excel: Bereiche auf 'leer' Überprüfen Microsoft Office Suite 15. Sep. 2016
Import Datensatz inkl = und - Zeichen in Excel/Libre CALC Software: Empfehlungen, Gesuche & Problemlösungen 20. Mai 2016
Bestimmter User kann seine Excel Dateien nicht mehr direkt öffnen Software: Empfehlungen, Gesuche & Problemlösungen 16. Apr. 2016