onkey funktioniert nicht

11/01/2010 - 00:09 von Peter | Report spam
Hallo zusammen,
ich habe folgenden Code, um bei Drücken der F12-Taste das Modul 1
auszuführen:
Modul 1:
Sub Ans_Ende_der_Eintragungen_springen()
Dim Zeile As Integer

Zeile = 5
Do Until Sheets("Einzelwertung").Cells(Zeile, 2).Value = ""
Zeile = Zeile + 1
Loop
Cells(Zeile, 2).Select
End Sub

Unter "Diese Arbeitsmappe" habe ich eingetragen:
Private Sub Workbook_open()
Call Application.OnKey("{F12}", "Ans_Ende_der_Eintragungen_springen")
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call Application.OnKey("{F12}")
End Sub

Wenn ich auf dem Tabellenblatt "Einzelwertung" bin und dann F12 drücke
passiert nichts. Klicke ich in eine beliebige Zelle und drücke dann
F12, dann funktioniert das Springen ans Ende der Eintragungen.

Was muss ich machen, damit beim Aktivieren des Tabellenblattes
"Einzelwertung" sofort ohne in eine Zelle reinklicken zu müssen, die
Taste F12 funktioniert.

Ich habe auch schon versucht, mit Range("B5").select beim Aktivieren
des Tabellenblattes weiterzukommen, aber das ging auch nicht.

Gruß
Peter
 

Lesen sie die antworten

#1 Andreas Killer
11/01/2010 - 09:42 | Warnen spam
On 11 Jan., 00:09, Peter wrote:

Wenn ich auf dem Tabellenblatt "Einzelwertung" bin und dann F12 drücke
passiert nichts. Klicke ich in eine beliebige Zelle und drücke dann
F12, dann funktioniert das Springen ans Ende der Eintragungen.


Hmm, kann ich nicht nachvollziehen. Was ist denn aktiv bevor Du in
eine Zelle klickst?

Obwohl ist eigentlich egal was aktiv ist, probier mal bitte das
angehàngte Makro, wenn die MsgBox nicht kommt dann legt mal das Makro
auf Strg-F12 (o.à.)
Application.OnKey "^{F12}", "Ans_Ende_der_Eintragungen_springen"
vielleicht mag Dein Excel F12 nicht abgeben... weiß der Kuckuck...

Andreas.

Sub Ans_Ende_der_Eintragungen_springen()
Dim R As Range
'Tabelle anwàhlen
Sheets("Einzelwertung").Select
'Letzte Zeile Spalte B + 1
Set R = Cells(Rows.Count, 2).End(xlUp).Offset(1, 0)

' 'Oder in das erste Loch:
' Set R = Cells(5, 2)
' 'Nàchste Zelle leer?
' If IsEmpty(R.Offset(1, 0)) Then
' 'Ja dann diese
' Set R = R.Offset(1, 0)
' Else
' 'Suchen
' Set R = R.End(xlDown).End(xlDown).End(xlUp).Offset(1, 0)
' End If

R.Select
'Testmeldung ausgeben
MsgBox R.Address
End Sub

Ähnliche fragen