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-ID: 152250

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

Ausgedruckt am: 01.11.2024 um 03:11 Uhr

76109
76109 03.10.2010 um 14:37:22 Uhr
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
76109
76109 03.10.2010 um 19:11:10 Uhr
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