Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Application.OnKey {Enter} funk

Forumthread: Application.OnKey {Enter} funk

Application.OnKey {Enter} funk
17.11.2002 21:20:41
Stefan
Hallo Excel-Freaks,

ich habe versucht mit

Sub auto_open()
Application.OnKey "{ENTER}", "StartBeiReturn"
End Sub

Sub auto_close()
Application.OnKey "{ENTER}"

End Sub

Sub StartBeiReturn()
MsgBox "Hallo Welt!"
End Sub

Das starten eines Makros nach drücken der Enter-Taste
auszulösen.

Mit "Enter" funktioniert es nicht

Mit z.B. "unten" (Taste Cursor nach unten) sehr wohl

woran könnte das liegen das es bei "Enter" nicht funktioniert?

bzw. wie könnte man auf andere Art und Weise ein Makro starten
wenn der Eintrag in einer Zelle geändert wird?

Vielen Dank schon im Voraus

Stefan

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Application.OnKey {Enter} funk
17.11.2002 21:26:17
Ralf Sögel

Private Sub Worksheet_Change(ByVal Target As Range)

End Sub

Re: Application.OnKey {Enter} funk
17.11.2002 21:26:20
PeterW
Hallo Stefan,

versuch es mal mit Worksheet_Change. Geh in den VBA-Editor, klicke im Projektfenster doppelt auf die Tabelle, in der Du gerne das Ereignis abfragen möchtest und wähle dann im linken DropDown zunächst Worksheet, anschließend im rechten DropDown das Ereignis aus.

Gruß
Peter

Anzeige
Funktion für ALLE workbooks ve
17.11.2002 22:21:50
Stefan
Hallo

wie kann man diese Funktion

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)
'....
End Sub

für ALLE Excel-Dateien verfügbar machen,
ohne sie in jede Datei einzufügen?

vielen Dank schon im Voraus

Stefan

Re: Funktion für ALLE workbooks ve
18.11.2002 08:01:10
PeterW
Hallo Stefan,

ich wüßte nicht, wie das gehen sollte. Ich wüßte aber auch nicht, wozu das gut sein sollte; es ist doch kaum anzunehmen, dass in allen Deinen Excel-Dateien beim Wechseln der Tabelle der gleiche Code ausgeführt werden soll.
Und was würdest Du anstellen, wenn Du eine Datei bekommst, die genau dieses Ereignis mit eigenem Code belegt hat. Das Chaos und Fehlermeldungen wären an der Tagesordnung.

Gruß
Peter

Anzeige
;
Anzeige

Infobox / Tutorial

Anwendung von Application.OnKey für die Enter-Taste in Excel VBA


Schritt-für-Schritt-Anleitung

Um das Makro bei Drücken der Enter-Taste auszulösen, kannst Du die Application.OnKey Methode in VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Erstelle ein neues Modul: Klicke im Projektfenster mit der rechten Maustaste auf dein Projekt und wähle Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Sub auto_open()
       Application.OnKey "{ENTER}", "StartBeiReturn"
    End Sub
    
    Sub auto_close()
       Application.OnKey "{ENTER}"
    End Sub
    
    Sub StartBeiReturn()
       MsgBox "Hallo Welt!"
    End Sub
  4. Schließe den VBA-Editor: Drücke ALT + Q, um den Editor zu schließen.

  5. Aktiviere das Makro: Du musst das Makro auto_open ausführen, damit die OnKey-Zuweisung funktioniert.

  6. Teste die Anwendung: Drücke die Enter-Taste, um zu sehen, ob die MsgBox erscheint.


Häufige Fehler und Lösungen

  • Problem: Application.OnKey funktioniert nicht mit der Enter-Taste.

    • Lösung: Stelle sicher, dass Du den Code in auto_open korrekt ausgeführt hast. Manchmal kann es auch helfen, Excel neu zu starten.
  • Problem: Das Makro wird nicht bei Ändern einer Zelle ausgelöst.

    • Lösung: Nutze stattdessen das Worksheet_Change-Ereignis, um auf Änderungen in einer Zelle zu reagieren, wie folgt:
    Private Sub Worksheet_Change(ByVal Target As Range)
       MsgBox "Eine Zelle wurde geändert!"
    End Sub

Alternative Methoden

Wenn Application.OnKey nicht funktioniert, kannst Du auch das Worksheet_Change-Ereignis verwenden. Hier ist eine kurze Anleitung:

  1. Öffne den VBA-Editor und navigiere zur gewünschten Tabelle.
  2. Füge den folgenden Code ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Not Intersect(Target, Me.Range("A1")) Is Nothing Then
           MsgBox "Die Zelle A1 wurde geändert!"
       End If
    End Sub

Mit diesem Code wird der Code ausgeführt, wenn sich der Wert in Zelle A1 ändert.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du Application.OnKey und Worksheet_Change verwenden kannst:

  • Beispiel 1: Verwende Application.OnKey, um die Enter-Taste für eine bestimmte Funktion zu aktivieren.

  • Beispiel 2: Verwende Worksheet_Change, um eine Aktion auszuführen, wenn eine Zelle im Bereich B1:B10 geändert wird.

    Private Sub Worksheet_Change(ByVal Target As Range)
      If Not Intersect(Target, Me.Range("B1:B10")) Is Nothing Then
          MsgBox "Eine Zelle im Bereich B1:B10 wurde geändert!"
      End If
    End Sub

Tipps für Profis

  • Verwende Application.OnKey sparsam: Diese Methode kann die Benutzererfahrung beeinträchtigen, wenn sie nicht richtig verwendet wird. Nutze sie nur, wenn es wirklich nötig ist.

  • Testen in verschiedenen Excel-Versionen: Manchmal kann es Unterschiede in der Unterstützung von VBA-Funktionen in verschiedenen Versionen von Excel geben. Überprüfe die Kompatibilität.

  • Fehlermeldungen überwachen: Halte die On Error-Anweisung bereit, um Fehler abzufangen und die Ausführung nicht zu unterbrechen.


FAQ: Häufige Fragen

1. Warum funktioniert Application.OnKey nicht mit der Enter-Taste?
Es kann an den Benutzereinstellungen oder an der Excel-Version liegen. Stelle sicher, dass keine anderen Makros die Funktion stören.

2. Wie kann ich Worksheet_Change für alle Arbeitsblätter verwenden?
Du kannst das Workbook_SheetChange-Ereignis verwenden, um Änderungen in allen Arbeitsblättern zu überwachen.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    MsgBox "Eine Zelle wurde geändert in " & Sh.Name
End Sub

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige