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

Bei Tastendruck Makro oder Befehl ausführen

Forumthread: Bei Tastendruck Makro oder Befehl ausführen

Bei Tastendruck Makro oder Befehl ausführen
06.09.2002 16:37:06
Stefan
Hallo, zusammen,

ich verzweifel bald. Ich möchte einfach per Tastendruck einen Befehl ausführen. D.h. wenn der Anwender in eine Zelle eine Taste drückt (das Minuszeichen), dann soll folgender Code ausgeführt werden.

---------------------------------------------------------------
If ActiveCell.Value = "-" Then
ActiveSheet.Cells(ActiveCell.Row, ActiveCell.Column + 1).Select
Else
ActiveCell.Value = "'-"
ActiveSheet.Cells(ActiveCell.Row, ActiveCell.Column + 1).Select
End If
---------------------------------------------------------------

Also... die Zelle wird auf Inhalt geprüft. Dann erfolgt ein Eintrag und der Cursor springt auf die nächste Zelle.

Mehr möchte ich doch garnicht...

Kann jemand helfen ?????

Vielen Dank
Stefan

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Bei Tastendruck Makro oder Befehl ausführen
06.09.2002 16:46:57
PeterW
Hallo Stefan,

der Code gehört in das Klassenmodul der Tabell, in der er ausgeführt werden soll.

Gruß
Peter

Re: Bei Tastendruck Makro oder Befehl ausführen
06.09.2002 16:57:26
Stefan
Hallo, Peter,

danke. funktioniert aber nicht ganz. D.h. ich möchte schon bei Tastendruck, d.h. wenn der Anwender die Taste betätigt hat, einen Sprung in die nächste Zelle. Sofern ich nämlich jetzt die "-"-Taste drücke und die Pfeiltaste betätige, dann kommt ein Zellenbezug (z.B. "-H34"). Ich muß mir die Entertaste sparen.

Hast Du noch einen Tipp ?

Viele Grüße
Stefan

Anzeige
leider nicht (o.T.)
06.09.2002 17:09:35
PeterW

Re: Bei Tastendruck Makro oder Befehl ausführen
06.09.2002 23:19:05
PeterW
Hallo Stefan,

doch noch ne Idee. Muss es unbedingt das "-" sein? Mit Zeichen, die nicht als Operanden definiert sind machen auch die Pfeiltasten kein Problem.

Gruß
Peter

Re: Bei Tastendruck Makro oder Befehl ausführen
09.09.2002 10:12:31
Stefan
Hallo, Peter,

leider muß es der "-" sein. Das ist ja gerade das verzwickte. Unter Lotus ;) ging das früher ohne Probleme. Da hat man die Feldfunktionen im Menü deaktiviert.

Es muß eine Funktion sein, die jeden Testendruck registriert. So ungefähr KeyPress. Aber ich weiß nicht, wo ich sie implementieren kann.

Gruß
Stefan

Anzeige
Re: Bei Tastendruck Makro oder Befehl ausführen
09.09.2002 21:13:56
PeterW
Hallo Stefan,

wenn Du eine Lösung finden solltest wäre ich daran *sehr* interessiert.

Gruß
Peter

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Bei Tastendruck Makro oder Befehl ausführen


Schritt-für-Schritt-Anleitung

Um bei einem Tastendruck einen Befehl auszuführen, kannst du den folgenden VBA-Code in das Klassenmodul der betreffenden Tabelle einfügen. Hier ist eine einfache Anleitung:

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

  2. Im Projektfenster suche die Tabelle, in der du das Makro anwenden möchtest.

  3. Doppelklicke auf den Tabellennamen, um das Klassenmodul zu öffnen.

  4. Füge den folgenden Code ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Value = "-" Then
           ActiveSheet.Cells(Target.Row, Target.Column + 1).Select
       Else
           Target.Value = "'-"
           ActiveSheet.Cells(Target.Row, Target.Column + 1).Select
       End If
    End Sub
  5. Schließe den VBA-Editor und teste den Code, indem du in die entsprechende Zelle ein Minuszeichen eingibst.


Häufige Fehler und Lösungen

  • Problem: Der Code funktioniert nicht wie gewünscht.
    Lösung: Stelle sicher, dass der Code im richtigen Klassenmodul eingefügt wurde. Es sollte das Modul der Tabelle sein, in der du arbeitest.

  • Problem: Der Cursor springt nicht zur nächsten Zelle.
    Lösung: Überprüfe, ob du die richtige Tasteneingabe vornimmst und dass die Zelle, in der du arbeitest, korrekt ausgewählt ist.


Alternative Methoden

Eine alternative Methode besteht darin, das Worksheet-Event KeyPress zu verwenden, um die Tasteneingabe direkt abzufangen. Diese Methode erfordert jedoch, dass du ein UserForm erstellst, da KeyPress nicht direkt in einem Arbeitsblatt-Modul funktioniert.

  1. Erstelle ein UserForm.
  2. Füge ein Textfeld hinzu und verwende den KeyPress-Event, um die Eingabe zu steuern.

Beispiel:

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If Chr(KeyAscii) = "-" Then
        ' Code hier einfügen
    End If
End Sub

Praktische Beispiele

Angenommen, du möchtest die Eingabe eines Minuszeichens in der Zelle A1 überwachen:

  1. Füge den obigen VBA-Code in das Klassenmodul ein.
  2. Teste die Eingabe in Zelle A1, indem du ein Minuszeichen eingibst.
  3. Beobachte, wie der Cursor automatisch zur Zelle B1 springt.

Tipps für Profis

  • Verwende Application.EnableEvents = False, bevor du den Wert änderst, um zu verhindern, dass das Change-Ereignis erneut ausgelöst wird. Vergiss nicht, es wieder auf True zu setzen.

    Private Sub Worksheet_Change(ByVal Target As Range)
      Application.EnableEvents = False
      ' Dein Code hier
      Application.EnableEvents = True
    End Sub
  • Experimentiere mit verschiedenen Eingaben und stelle sicher, dass dein Code auch in anderen Szenarien funktioniert.


FAQ: Häufige Fragen

1. Wie kann ich das Makro für andere Zeichen als "-" anpassen?
Ändere einfach die Bedingung in dem VBA-Code. Ersetze If Target.Value = "-" Then durch das gewünschte Zeichen.

2. Funktioniert dies in allen Excel-Versionen?
Ja, dieser VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen (z.B. Excel 2010 und höher).

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige