Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
688to692
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
688to692
688to692
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Aktion bei Drücken der Eingabetaste in Zelle

Aktion bei Drücken der Eingabetaste in Zelle
03.11.2005 19:30:24
Jens
Hallo!
Sicher gibt's hierfür eine Lösung - nur find ich sie nicht :-)
Ich möchte, dass bei Drücken der Eingabetaste in einer ganz bestimmten Zelle eine bestimmte VBA-Aktion ausgeführt wird.
Wie geht das?
Vielen Dank sagt schon mal
der Jens

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aktion bei Drücken der Eingabetaste in Zelle
03.11.2005 19:56:32
Erich
Hallo Jens,
das geht it OnKey:

Application.OnKey "~", "DeineAktion"
Application.OnKey "{ENTER}", "DeineAktion"

Später (vielleicht beim Verlassen des Tabellenblatts) solltest du wohl die Tastenaktion wieder aufheben:

Application.OnKey "~"
Application.OnKey "{ENTER}"

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: Aktion bei Drücken der Eingabetaste in Zelle
03.11.2005 20:05:06
Erich
Hallo Jens,
Heikos Lösung ist natürlich besser, wenn es um die Änderung der Zelle geht.
Die "OnKey"-Möglichkeit solltest du nur dann nutzen, wenn das Drücken der Entertaste auch ohne Änderung des Zellinhalts die Aktion auslösen soll.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
nur formal - hatte /pre vergessen
03.11.2005 20:08:45
Erich
Damit der hiernach folgende Text wieder normal wird:

Grüße von Erich aus Kamp-Lintfort
AW: nur formal - hatte /pre vergessen
03.11.2005 20:11:09
Erich
... reichte wohl noch nicht, also noch mal:

Wenn das so nicht funzt: Bitte um Entschuldigung!
Grüße von Erich aus Kamp-Lintfort
AW: Aktion bei Drücken der Eingabetaste in Zelle
03.11.2005 20:01:11
Heiko
Hallo Jens,
wenn du in der Zelle was änderst und dann ENTER drückst, reagiert dieser Code darauf.
In das Tabellenblatt.
Tabellenreiter mit rechter Maustaste anklicken.
Code anzeigen aufrufen.
Code in das nun erscheinende Fenster kopieren.
Ausprobieren.

Private Sub Worksheet_Change(ByVal Target As Range)
' Wenn mehr als eine Zelle ausgewählt wurde nichts tun.
If Target.Count > 1 Then Exit Sub
' Wenn Zelle A1 gemeint ist so, für C23 z.B. "$C$23"
If Target.Address = "$A$1" Then
MsgBox " Hier soll nun was ganz bestimmtes passieren !", vbInformation, " Info !"
' Hier kann dann mehr Code rein, oder ein anderes Makro aufgerufen werden.
End If
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett
Anzeige
AW: Aktion bei Drücken der Eingabetaste in Zelle
03.11.2005 20:01:19
Erich
Hallo Jens,
ich hab noch was überlesen: "in einer ganz bestimmten Zelle".
In "DeineAktion" kannst du z. B. mit
If ActiveCell.Address(0, 0) "C7" then Exit Sub
diese Zelle abfragen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Aktion bei Drücken der Eingabetaste in Zelle
03.11.2005 20:39:56
Jens
Hallo Heicko & Erich,
danke für eure Tipps!
Tatsächlich - das hatte ich vergessen zu erwähnen - soll der Code auch ausgeführt werden, wenn in der Zelle nichts geändert wird.
Damit fällt Worksheet_Change flach. Ist also Application.OnKey die einzige Möglichkeit?
LG,
Jens
AW: Aktion bei Drücken der Eingabetaste in Zelle
04.11.2005 07:54:27
Heiko
Mensch Jens,
ihr habt alle Wünsche, da sollte man sich doch mal genauer mit VBA beschäftigen. Dann klappt es auch mit EXCEL Sonderwünschen. ;-)
So könnte es gehen, ALLES in das Codefenster der Tabelle.
Option Explicit
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Public strLastCell As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If strLastCell <> "" Then
' Für Zelle A1, sonst anpassen.
If Range(strLastCell).Address = "$A$1" Then
If GetAsyncKeyState(&HD) = -32768 Then
MsgBox "Letzte Zelle = A1    ENTER    gedrückt !!! ", vbInformation
End If
End If
End If
strLastCell = Target.Address
End Sub

Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige
AW: ... ist viel besser als OnKey - *staun*
04.11.2005 08:46:54
Erich
AW: Aktion bei Drücken der Eingabetaste in Zelle
04.11.2005 11:05:59
Jens
Hallo Heiko!
Vielen Dank - funktioniert prächtig!
...wie soll man als VBA-Laie schon auf die GetAsyncKeyState-Funktion kommen...? ;-)
LG,
Jens

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige