448 Aufrufe
Gefragt in Tabellenkalkulation von jelena Mitglied (769 Punkte)
Hallo guten Tag, bräuchte ein excel vba wenn ich z.B. in Zeile C bis BL (variabel) die entertaste drücke soll der Cursor in nächster zeile in Spalte C springen. Danke

14 Antworten

0 Punkte
Beantwortet von xlking Experte (1.6k Punkte)

Hallo Jelena,

das geht mit Application.OnKey. Einfach in das Modul "DieseArbeitsmappe" den folgenden Code einfügen:

Private Sub Workbook_Open()
  Application.OnKey "{" & vbKeyReturn & "}", "Naechste_Zeile"
End Sub

Anschließend in ein normales Modul (z.B. Modul1) diesen Code einfügen:

Sub Naechste_Zeile()
  Cells(ActiveCell.Row + 1, 3).Select
End Sub

Das Ganze funktioniert erst, wenn du die Datei schließt (Speichern nicht vergessen!) und neu öffnest. 

Gruß Mr. K.

0 Punkte
Beantwortet von jelena Mitglied (769 Punkte)
Hallo Mr. K. habe alles laut Beschreibung erledigt es passiert aber nichts. Danke
0 Punkte
Beantwortet von xlking Experte (1.6k Punkte)
Hast du die Datei neu geöffnet? Das ist wichtig, denn erst beim Öffnen wird diese Funktion freigeschaltet.

Mr. K.
0 Punkte
Beantwortet von xlking Experte (1.6k Punkte)
Ich weiß nicht, wie es bei dir ist, aber bei mir kommt nach dem ersten Öffnen einer neu erstellten xlsm-Datei eine Meldung, dass die darin enthaltenenen Makros deaktiviert wurden und ich muss diese erst einmalig neu aktivieren. Achte mal auf diese Meldung. Vielleicht hast du das noch nicht gemacht?

Gruß Mr. K.
0 Punkte
Beantwortet von jelena Mitglied (769 Punkte)
Hallo Mr. K. ja ich habe alles laut Beschreibung erledigt es passiert aber nichts. Danke
0 Punkte
Beantwortet von xlking Experte (1.6k Punkte)
Dann drückst du wahrscheinlich die andere Enter-Taste. Ersetze Mal vbKeyReturn durch vbKeyExecute und öffne die Datei nochmal neu.
0 Punkte
Beantwortet von jelena Mitglied (769 Punkte)
Hallo vielen Dank, habe beide funktionen eingebaut.
0 Punkte
Beantwortet von vbastler Mitglied (292 Punkte)
Moin Mr.K.

lässt sich die Sache auch so umbauen, dass sie nur im aktiven Sheet anspringt? Ich kann mir vorstellen, dass der C3-Hupfer nicht in jedem Sheet erwünscht ist.

Grüße

d'r Bastler von den VBAsteleien.de
+1 Punkt
Beantwortet von xlking Experte (1.6k Punkte)

Hi Bastler,

Ja das ist eine Funktion die Applikationsweit gültig ist. Klar kann und sollte man das noch einschränken. Dazu müsste man allerdings die Namen der Arbeitsmappe und der Tabelle kennen, wo das gewünscht ist. Dann könnte man den zweiten Code z.B. wie folgt nutzen:

Sub Naechste_Zeile()
  If ActiveWorkbook.Name = "Mappe1" And ActiveSheet.Name = "Tabelle1" _
  And Not Intersect(ActiveCell, Range("C:BL")) Is Nothing Then
    Cells(ActiveCell.Row + 1, 3).Select
  Else
    ActiveCell.Offset(1, 0).Select
  End If
End Sub

Gruß Mr. K.

0 Punkte
Beantwortet von jelena Mitglied (769 Punkte)
Hallo guten Tag, ich bräuchte das makro in der jeweils geöffneten Tabelle z.B. 2 Material oder 3 Ort oder 4 Dorf usw.
...