stonehauser
Goto Top

Excel 2007 an Zeilenanfang springen

Hallo liebe Kollegen,

ich habe ein kleines Problem mit Excel 2007. In einem Tabellenblatt schreibe ich in die Zellen bis beispielsweise F1 Werte, danach drücke ich die "Enter" Taste. Jetzt wird automatisch in die Zelle F2 gesprungen, wie in den Optionen eingestellt. Nun wäre es aber für dieses Tabellenblatt sehr praktisch wenn nicht in die Zelle F2 sonder in die Zelle A2 gesprungen wird, d.h. es soll eine Art Zeilenumbruch eingefügt werden.
Lässt sich dieses Verhalten irgendwie einstellen?

d3eafecfceb7a3b8556de81a97a73259

Danke für Eure Hilfe im Voraus!

Content-Key: 152250

Url: https://administrator.de/contentid/152250

Printed on: April 24, 2024 at 04:04 o'clock

Mitglied: 76109
76109 Oct 03, 2010 at 12:37:22 (UTC)
Goto Top
Hallo stonehauser!

Das ließe sich per Makro-Code machen.

Den Quelltext im VBA-Editor in die Tabelle kopieren, in der diese Funktion ausgeführt werden soll:
Private Sub Worksheet_Activate()
    Application.OnKey "{Enter}", "NewLineSelect"  
End Sub

Private Sub Worksheet_Deactivate()
    Application.OnKey "{Enter}"  
End Sub
Und diesen Quelltext in ein Modul einfügen:
Const UmbruchSpalte = 6   'Funktion nur in Spalte F ermöglichen  

Sub NewLineSelect()
    If ActiveCell.Column = 6 Then Cells(ActiveCell.Row + 1, "A").Select  
End Sub

Beim aktivieren des entsprechenden Tabellenblattes, wird die Umbruch-Funktion aktiviert und beim Wechsel in ein anderes Tabellenblatt wieder deaktiviert.
Ausserdem wird die Umbruch-Funktion nur in Spalte F ausgeführt. In den anderen Spalten bleibt die jeweilige Zelle aktiv.

Falls Du die Return-Taste verwenden willst, dann {Enter} nach {Return} ändern.

Gruß Dieter

PS Damit es beim Öffnen der Arbeitsmappe auch funktioniert muss dieser Code noch im VB-Editor in "Diese Arbeitsmappe" kopiert werden:
Const UmbruchSheet = "Tabelle1"     'Tabellenname mit Umbruch-Funtkion  

Private Sub Workbook_Open()
    If ActiveSheet Is Sheets(UmbruchSheet) Then Application.OnKey "{Enter}", "NewLineSelect"  
End Sub
Mitglied: 76109
76109 Oct 03, 2010 at 17:11:10 (UTC)
Goto Top
Hallo nochmal!

Wenn Du anstatt dem vorigen Code im Modul diesen Code einfügst:
Const SpalteBeg = 1
Const SpalteEnd = 6

Sub NewLineSelect()
    If ActiveCell.Column = SpalteBeg Then
        Cells(ActiveCell.Row, SpalteEnd).Select
    ElseIf ActiveCell.Column = SpalteEnd Then
        Cells(ActiveCell.Row + 1, SpalteBeg).Select
    End If
End Sub
Dann springt Deine Zellmarkierung bei Betätigung von Enter in Spalte A nach Spalte F in der gleichen Zeile und bei Betätigung von Enter in Spalte F in die nächste Zeile nach Spalte A.

Gruß Dieter