Excel Coursor rechts und unten

  • #1
B

Bulli

Mitglied
Themenersteller
Dabei seit
17.11.2002
Beiträge
24
Reaktionspunkte
0
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

  • 53206220.jpg
    53206220.jpg
    360,5 KB · Aufrufe: 45
  • #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 )
 
  • #11
Hallo zusammen,

ich bedanke mich für Eure tatkräftige Hilfe. Mein Problem konnte ich jedenfalls dank Eurer Hilfe lösen.

nochmals Danke
 
  • #12
Ola,

@Bulli: Dank für die interessante Frage ;D
 
  • #13
Ola,

hier ist er wieder ;D
 
  • #14
Grüße Euch alle,

ich wollte heute das Service Pack 1 für Windows 7 installieren, habe jedoch massive Probleme damit, es läuft folgendermaßen ab:

- alle vorigen Updates sind installiert
- Service Pack taucht im Windows Update auf
- ich führe das Update aus (Dauer: ca 30 Minuten)
- es treten keinerlei Probleme auf
- es kommt zum regulären Neustart

und dann fangen die Probleme an:

nachdem ich auf dem Desktop bin, beginnen ein paar Fehlermeldungen zu erscheinen, bei jedem Boot mal ein anderer, im Endeffekt aber immer wieder Logitech G15, Soundtreiber, etc.
Das Schlimmste ist aber, dass ich keine Windows Systemdienste mehr starten kann: Defragmentierung, Systemwiederherstellung, Aufruf von Installationsdateien, Nvidia Systemsteuerung, ect. Es kommt immer die Meldung, dass es nicht ausgeführt werden kann. Ein arbeiten mit dem PC ist unmöglich.

Ich habe dann folgendes gemacht: Eine Systemwiederherstellung im Reparaturmodus (allerdings erscheint am Ende immer wieder eine Meldung, dass diese fehlgeschlagen sei, beim Neustart allerdings kommt die Meldung, dass es erfolgreich war und das war sie dann auch). Nach einem Neustart geht allerdings wieder alles, wie vor dem Service Pack, mit einer Ausnahme: Wenn ich das Update erneut starten will (oder etwas anderes), kommt die Meldung, dass die Datei sqmapi.dll nicht gefunden werden kann.

Nachdem ich einen sfc/scannow befehl ausgeführt habe, repariert Windows die fehlende Datei und es funktioniert wieder alles.

Wie kann ich das Service Pack installieren? Sowohl über den Updater, als auch die gedownloadete SP1.exe führen zu dem selben Ergebnis. Das Internet habe ich stundenlang durchforstet, kein Ergebnis.

Ich bin ratlos! Bitte helft mir!

Danke
 
  • #15
Bei mir lief die Installation der Download-Version (über 900 MB) für x64 über 2 Stunden.

Dabei war ich als Admin eingeloggt.

Versuche mal diesen Weg und berichte.

Da das SP jetzt erst neu von vielen installiert wird, kann es noch keine umfangreichen Hinweise dazu geben.
 
Thema:

Excel Coursor rechts und unten

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben