Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Gibt es einen VBA-Befehl für Eingabe (Enter)?

Gibt es einen VBA-Befehl für Eingabe (Enter)?
03.04.2009 09:12:46
Karsten
Hallo,
Gibt es einen VBA-Befehl für Eingabe (Enter)?
Ich befinde mich durch einen Makrobefehl im F2-Modus (doppelgeklickte Zelle) und möchte aber, dass die Zelle darunter aufgerufen wird. Ich lande da eben immer im F2-Modus.
Danke für eure Hilfe.
Gruß
Karsten
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gibt es einen VBA-Befehl für Eingabe (Enter)?
03.04.2009 09:16:24
Andi
Hi,
solange der Bearbeitungsmodus einer Zelle aktiv ist, können keine Makros ablaufen.
Poste doch mla Deinen Code, und beschreibe etwas genauer, was passiert und was passieren soll...
Schönen Gruß,
Andi
AW: Gibt es einen VBA-Befehl für Eingabe (Enter)?
03.04.2009 09:30:12
Karsten
Hallo Andi,
wenn in B1 nicht T E R M I N E steht, sondern ein Suchwort, und ich Enter drücke wird u.s. Makro ausgelöst.

Private Sub Worksheet_Change(ByVal Target As Range)
Set n = Cells(1, 2).Find("T E R M I N E")
If n Is Nothing Then
Application.Run "finde_Inhalt_in_B"
Application.SendKeys "{F2}"
End If
End Sub


Wenn das Wort gefunden ist, mache ich einen Rechtsklick, in B1 wird wieder T E R M I N E eingetragen, und die aktive Zelle landet auf dem alten Punkt. Siehe unten. Aber, wieso komme ich erst aus dem F2-Modus heraus, wenn ich per Hand bestätige? Läßt sich da befehlsteschnisch etwas machen?


Private Sub Worksheet_BeforerightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Dim rngOld As Range
Set rngOld = ActiveCell
Range("b1").Select
ActiveCell.FormulaR1C1 = "T E R M I N E"
rngOld.Select
Gruß
Karsten

Anzeige
AW: Gibt es einen VBA-Befehl für Eingabe (Enter)?
03.04.2009 09:39:57
D.Saster
Hallo,
was soll der Quatsch? Warum suchst du in einer Zelle?

Private Sub Worksheet_Change(ByVal Target As Range)
If cells(1,2)"T E R M I N E" then finde_inhalt_in_B
End Sub


Auf die Selecterei im 2. Code kannst du auch verzichten.


Private Sub Worksheet_BeforerightClick(ByVal Target As Range, Cancel As Boolean)
Cancel=true
cells(1,2)="T E R M I N E"
End Sub


Gruß
Dierk

Anzeige
AW: Gibt es einen VBA-Befehl für Eingabe (Enter)?
03.04.2009 10:02:31
Karsten
Hallo Dierk,
danke, für das Umschreiben der Befehle. Allerdings ist mein Problem noch nicht gelößt.
Wenn ich mit immerwieder Enterdrücken über:
If Cells(1, 2) "T E R M I N E" Then finde_Inhalt_in_B
zum gewünschten Suchwort kommen will, geht das (wohlgemerkt mit meinen zur verfügungstehenden Kenntnissen) nur mit:
Application.SendKeys "{F2}"
Lasse ich das weg, wird doch nur die untendrunterliegende Zelle angesteuert. Was muß unter
rivate Sub Worksheet_BeforerightClick(ByVal Target As Range, Cancel As Boolean)
Cells(1, 2) = "T E R M I N E"
noch drunter, dass die Zelle den "Normalzustand" bekommt?
"Warum suchst du in einer Zelle?" .... den Code hat mir jemand geschrieben.
Gruß
Karsten
Anzeige
AW: Gibt es einen VBA-Befehl für Eingabe (Enter)?
03.04.2009 12:50:08
Jogy
Hi.
Mein Problem bei der Hilfe ist, dass ich überhaupt nicht verstehe, was Du denn eigentlich machen willst. Den Bearbeitungsmodus brauchst Du nur, wenn Du etwas eingeben willst, in einem Makro ist der vollkommen überflüssig.
Gruss, Jogy
Application.SendKeys "{Enter}" owT
03.04.2009 11:39:24
D.Saster
AW: Application.SendKeys "{Enter}" owT
03.04.2009 12:05:54
Karsten
Hallo D.Saster,
Danke, das war, was ich meine ... geht bloß nicht, weil Makro nicht mehr aufhört zu laufen.
Ich versuche mal mit Application.SendKeys "{escape}" was anzufangen. Obs was wird...
Gruß
Karsten
Anzeige
AW: Application.SendKeys "{Enter}" owT
03.04.2009 12:37:06
D.Saster
Hallo,

weil Makro nicht mehr aufhört zu laufen


war mir klar.
Gruß
Dierk

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA-Befehle für Eingabe (Enter) in Excel nutzen


Schritt-für-Schritt-Anleitung

Um einen VBA-Befehl zu verwenden, der die Eingabetaste (Enter) simuliert, kannst du den Application.SendKeys Befehl einsetzen. Hier ist eine einfache Anleitung, wie du dies implementieren kannst:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Füge ein neues Modul hinzu, indem du auf Einfügen > Modul klickst.

  3. Kopiere und füge den folgenden Code in das Modul ein:

    Sub SendEnterKey()
        Application.SendKeys "{ENTER}"
    End Sub
  4. Um diesen Befehl zu verwenden, kannst du ihn in ein bestehendes Makro oder ein Ereignis einfügen, wie z.B. Worksheet_Change.


Häufige Fehler und Lösungen

Ein häufiges Problem beim Einsatz von Application.SendKeys ist, dass der Bearbeitungsmodus einer Zelle aktiv ist, was das Abspielen von Makros behindert. Hier sind einige Lösungen:

  • Fehler: Das Makro wird nicht ausgeführt, während der Bearbeitungsmodus aktiv ist.

    • Lösung: Beende den Bearbeitungsmodus, bevor du das Makro ausführst. Du kannst dies erreichen, indem du Application.SendKeys "{ESC}" verwendest, um den Bearbeitungsmodus zu verlassen.
  • Fehler: Der Befehl Application.SendKeys "{ENTER}" funktioniert nicht wie gewünscht.

    • Lösung: Stelle sicher, dass du den Befehl an der richtigen Stelle im Code platzierst. Er sollte nach einer Änderung oder einem Benutzerinteraktion aufgerufen werden.

Alternative Methoden

Wenn du Application.SendKeys nicht verwenden möchtest, gibt es andere Möglichkeiten, das gewünschte Verhalten zu erreichen:

  1. Direktes Wechseln der Zelle: Anstatt Enter zu simulieren, kannst du die aktive Zelle direkt ändern:

    ActiveCell.Offset(1, 0).Select
  2. Verwenden von Worksheet_Change: Du kannst einen Code schreiben, der bei einer Zelländerung automatisch die nächste Zelle auswählt.


Praktische Beispiele

Hier ist ein praktisches Beispiel, wie der Application.SendKeys Befehl in einem Event-Handler verwendet werden kann:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$1" Then
        If Target.Value <> "T E R M I N E" Then
            Application.SendKeys "{F2}"
            Application.SendKeys "{ENTER}"
        End If
    End If
End Sub

In diesem Beispiel wird beim Ändern der Zelle B1 geprüft, ob das Wort "T E R M I N E" eingegeben wurde. Wenn nicht, wird der F2-Modus aktiviert und die Eingabetaste simuliert.


Tipps für Profis

  • Vermeidung von SendKeys: Wo möglich, versuche, SendKeys zu vermeiden, da es unzuverlässig sein kann. Nutze stattdessen direkte Zellreferenzen und -manipulationen.
  • Debugging: Verwende Debug.Print zur Überwachung von Variablenwerten während der Ausführung deines Codes, um Probleme schneller zu identifizieren.
  • Behandeln von Fehlern: Implementiere Fehlerbehandlungsroutinen in deinem VBA-Code, um unerwartete Fehler zu vermeiden.

FAQ: Häufige Fragen

1. Was ist Application.SendKeys? Application.SendKeys ist ein VBA-Befehl, der es ermöglicht, Tasteneingaben zu simulieren. Er kann verwendet werden, um die Eingabetaste oder andere Tasten in Excel zu drücken.

2. Warum funktioniert mein Makro nicht, wenn ich SendKeys benutze? Das liegt häufig daran, dass der Bearbeitungsmodus einer Zelle aktiv ist. Stelle sicher, dass du den Modus verlässt, bevor du das Makro ausführst.

3. Gibt es Alternativen zu SendKeys? Ja, du kannst direkt mit Zellreferenzen arbeiten oder Ereignisse wie Worksheet_Change nutzen, um das gewünschte Verhalten zu erzielen.

4. Wie kann ich verhindern, dass mein Makro in einer Schleife festhängt? Verwende Bedingungsprüfungen, um sicherzustellen, dass dein Makro nicht mehrmals hintereinander ausgeführt wird, insbesondere in Verbindung mit SendKeys.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige