Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Programm starten, wenn Enter-Taste gedrück wird

Programm starten, wenn Enter-Taste gedrück wird
06.09.2008 15:46:08
Matthias
Hallo!
Ich habe folgendes vor: Beruflich muss ich oft mit großen Listen arbeiten, in denen Zeichnungsnummer stehen. Wenn der Cursor auf irgendeiner dieser Zellen steht, soll bei Druck auf die Enter-Taste ein Programm gestartet werden, wobei die Zahl in dieser Zelle dem Programm als Parameter übergeben werden soll. Den Programmstart habe ich schon hinbekommen, allerdings weiß ich nicht wie ich den Parameter übergebe. Ich hoffe das Problem ist verständlich.
Hier die Datei mit meinem aktuellen Stand: https://www.herber.de/bbs/user/55223.xls
Gruß und vielen Dank schon mal
Matthias
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Programm starten, wenn Enter-Taste gedrück wird
06.09.2008 15:54:20
Ramses
Hallo
Welches Programm ?
Kann das Programm überhaupt Startparameter übernehmen ?
Lass das mit dem OnKey lieber weg, verwende stattdessen

Private Sub Worksheet_Change(ByVal Target As Range)
Anwendung_starten Target.Value
End Sub


im Klassenmodul deiner Tabelle
und ändere deinen Code in
Sub Anwendung_starten(parVar As Variant)
Dim Programmstart
Programmstart = Shell("C:\WINDOWS\system32\calc.exe" & parVar)
End Sub


Gruss Rainer

Anzeige
AW: Programm starten, wenn Enter-Taste gedrück wir
06.09.2008 16:05:00
Matthias
Hi,
das Programm heißt Zeichnungssucher.exe und ist firmenintern, daher kann ich es nicht herausgeben. Es kann die Zeichnungsnummer als Parameter übernehmen und sucht dann in diversen Ordnern nach dwg-Dateien mit dieser Zeichnungsnummer. Momentan ist es so, dass man immer per copy&paste die Zeichnungsnummer aus der Excel-Liste in das Programm einfügen muss...
Testweise hatte ich in der Datei einfach mal calc.exe als Programm gewählt, vielleicht fällt euch noch etwas Besseres ein.
Frage zu Deinem Code: Wird dieser Code auch ausgeführt, wenn Enter gedrückt wird? Das ist nämlich gerade der "Komfort", den ich haben möchte.
Matthias
Anzeige
AW: Programm starten, wenn Enter-Taste gedrück wir
06.09.2008 16:12:00
Walter
Hi,
wenn du die Funktion der Entertaste derart verbiegst ist keine vernünftige Arbeit mehr in Excel möglich.
Es gibt doch genügend andere Tasten, die du dafür verwenden kannst.
mfg Walter
AW: Programm starten, wenn Enter-Taste gedrück wir
06.09.2008 16:26:15
Matthias
Hallo Waler,
ganz unrecht hast Du da nicht. Es ist aber hier nur die Enter-Taste, nicht die Return-Taste. Evtl. überlege ich mir noch eine andere Taste, wäre ja kein großer Aufwand das noch zu ändern. Nur das mit dem Parameter fehlt mir halt noch...
Matthias
Anzeige
AW: Programm starten, wenn Enter-Taste gedrück wir
06.09.2008 18:19:55
Matthias
OK, habe mich für Shift + Eingabetaste entschieden, ich denke dann sollte es keine Probleme geben.
Hier gibt (wild erfunden) mal ein kleines Programm, an das ein Parameter übergeben werden kann: http://www.nilsobermiller.de/download/StartDelay.zip Also z.B. "StartDelay.EXE c:\windows\notepad.exe 20" würde in 20 Sekunden den Windows Editor starten. Wie bekommt man es nun hin, dass die Zahl in der Zelle (z.B. 20) dem Programm als Parameter übergeben wird?
Gruß Matthias
Anzeige
AW: Programm starten, wenn Enter-Taste gedrück wir
06.09.2008 19:21:00
Ramses
Hallo
"...dass die Zahl in der Zelle (z.B. 20) dem Programm als Parameter übergeben wird?..."
Wenn du das probieren würdest, was man dir vorschlägt, dann müsstest du nicht solange warten.
Gruss Rainer
AW: Programm starten, wenn Enter-Taste gedrück wir
06.09.2008 19:28:00
Matthias
Hi,
hier mal mein aktueller Stand: https://www.herber.de/bbs/user/55224.xls
Es fehlt nur noch der Teil des Codes, der dem Programm StartDelay.exe den Wert der aktuellen Zelle als Parameter übergibt. Weiß hier wirklich niemand Rat? Irgendetwas mit ActiveCell.Value ?
mfg Matthias
P.S.: Bei mir liegt das o.g. Programm StartDelay.exe (nur zum Testen) unter C:/
Anzeige
Warum...
06.09.2008 19:38:02
Ramses
Hallo
"...den Wert der aktuellen Zelle als Parameter übergibt...."
Nun reichts mir ehrlich gesagt,... willst du nicht oder kannst du nicht.
Das habe ich bereits in meinem ersten Beitrag geschrieben.

Private Sub Worksheet_Change(ByVal Target As Range)
Anwendung_starten Target.Value
End Sub


Sub Anwendung_starten(parVar As Variant)
Dim Programmstart
Programmstart = Shell("C:\WINDOWS\system32\calc.exe" & parVar)
End Sub


Wenn du es nicht verstehst, dann frage gezielt nach oder lass es bleiben.
Ich betrachte diesen Beitrag für mich als erledigt.
Gruss Rainer

Anzeige
AW: Warum...
07.09.2008 11:41:27
Matthias
Guten Morgen,
warum gleich so empfindlich? Ich habe Deinen Code durchaus probiert, bekomme ich es mit meinen VBA-Kenntnissen damit nicht hin! Müssen beide Code-Teile in ein Modul kopiert werden, oder eines in ein Modul und das andere ins Tabellenblatt? Auch kann ich nicht erkennen, wo in dem Code der aktuelle Zellwert übergeben wird oder wie das Makro beim entsprechenden Tastendruck (z.B. Shift und Enter) gestartet werden soll.
Übrigens hatte ich Deinen letzten Beitrag noch gar nicht gelesen, als ich meinen letzten geschrieben habe...
Gruß Matthias
Anzeige
AW: Warum...
07.09.2008 13:42:00
Ramses
Hallo
"...warum gleich so empfindlich?.."
Weil du in jedem Beitrag das gleich fragst ohne die Vorschläge, wie du selbst sagst, zu verstehen.
Wenn jemand seine EXCEL Umgebung so umbiegt, dass Tastatureingaben verbogen werden und was anderes tun als sonst erwartet,... dann gehe ich davon aus, dass ein gewisses Grundverständnis da ist
"..Ich habe Deinen Code durchaus probiert,..."
Hast du nicht
"...bekomme ich es mit meinen VBA-Kenntnissen damit nicht hin! .."
Es ist eine Schritt für Schritt Anleitung in meinem ersten beitrag
"...Auch kann ich nicht erkennen..."
Musst du auch nicht, wenn du keine Ahnung hast. Mach es einfach.
Wenn du es verstehen willst, dann gehe mit F8 im Einzelschritt durch den Code
"...oder wie das Makro beim entsprechenden Tastendruck ..:"
Du liest die Beiträge nicht,... denn das ist gar nicht nötig wie ich schon geschrieben habe
"...Übrigens hatte ich Deinen letzten Beitrag noch gar nicht gelesen,..."
War auch nicht nötig,... da es bereits im ersten Beitrag gestanden hat
Gruss Rainer
Anzeige

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

Programm starten bei Enter-Taste in Excel


Schritt-für-Schritt-Anleitung

Um ein Programm zu starten, wenn Du die Enter-Taste drückst, kannst Du den folgenden VBA-Code in das Klassenmodul Deiner Tabelle einfügen. Dieser Code ermöglicht es, den Wert der aktuell markierten Zelle als Parameter zu übergeben.

  1. Öffne Excel und gehe zu dem Arbeitsblatt, in dem Du das Makro verwenden möchtest.
  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Doppelklicke auf das entsprechende Tabellenblatt im Projekt-Explorer.
  4. Füge den folgenden Code in das Code-Fenster ein:
Private Sub Worksheet_Change(ByVal Target As Range)
    Anwendung_starten Target.Value
End Sub

Sub Anwendung_starten(parVar As Variant)
    Dim Programmstart
    Programmstart = Shell("C:\Pfad\zu\deinem\Programm.exe " & parVar, vbNormalFocus)
End Sub
  1. Ersetze "C:\Pfad\zu\deinem\Programm.exe" durch den vollständigen Pfad zu dem Programm, das Du starten möchtest.
  2. Schließe den VBA-Editor und teste den Code, indem Du die Enter-Taste drückst, während Du auf einer Zelle stehst, die eine Zahl enthält.

Häufige Fehler und Lösungen

  • Fehler: Programm startet nicht.
    Überprüfe den Pfad zum Programm. Stelle sicher, dass der Pfad korrekt eingegeben ist und das Programm existiert.

  • Fehler: Parameter wird nicht übergeben.
    Stelle sicher, dass Du die Worksheet_Change-Ereignisprozedur korrekt implementiert hast. Der Parameter wird aus der Zelle, die Du bearbeitest, übernommen.

  • Fehler: Makro läuft nicht.
    Stelle sicher, dass Du Makros in Excel aktiviert hast. Gehe zu Datei > Optionen > Sicherheit > Makroeinstellungen und wähle die entsprechende Option aus.


Alternative Methoden

Wenn Du die Funktionalität der Enter-Taste nicht so stark anpassen möchtest, kannst Du alternative Tasten verwenden, um Dein Programm zu starten. Eine Möglichkeit wäre die Kombination Shift + Enter. Hierzu müsstest Du den VBA-Code entsprechend anpassen, um die Tasteneingaben zu erkennen.

Eine andere Methode wäre, einen Button in Excel zu erstellen, der das Programm mit dem Zellwert als Parameter startet. Du kannst dies tun, indem Du einen Button auf das Arbeitsblatt ziehst und den folgenden Code hinterlegst:

Sub Button_Click()
    Anwendung_starten ActiveCell.Value
End Sub

Praktische Beispiele

  1. Zeichnungssucher.exe
    Wenn Du ein firmenspezifisches Programm wie Zeichnungssucher.exe verwenden möchtest, stelle sicher, dass dieses Programm Parameter akzeptiert und die richtigen Dateipfade verwendet werden.

  2. StartDelay.exe
    Wenn Du die Testanwendung StartDelay.exe verwenden möchtest, kannst Du den Code so anpassen:

Sub Anwendung_starten(parVar As Variant)
    Dim Programmstart
    Programmstart = Shell("C:\Pfad\zu\StartDelay.exe " & parVar, vbNormalFocus)
End Sub

Hierbei wird die Zahl aus der Zelle als Parameter übergeben, z.B. StartDelay.EXE c:\windows\notepad.exe 20.


Tipps für Profis

  • Verwende Option Explicit am Anfang Deiner Module, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.
  • Teste Deinen Code Schritt für Schritt mit F8, um zu sehen, wie die Variablen sich ändern und welche Werte übergeben werden.
  • Halte Deine Arbeitsumgebung sauber und dokumentiere Deinen Code, um zukünftige Anpassungen zu erleichtern.

FAQ: Häufige Fragen

1. Kann ich die Enter-Taste in Excel weiterhin normal verwenden?
Ja, Du kannst eine alternative Tastenkombination wie Shift + Enter verwenden, um Dein Programm zu starten, ohne die Standardfunktion der Enter-Taste zu beeinträchtigen.

2. Wo kann ich den VBA-Code finden?
Du kannst den VBA-Code im Excel-VBA-Editor unter dem entsprechenden Arbeitsblatt finden, nachdem Du ALT + F11 gedrückt hast.

3. Was, wenn mein Programm keine Parameter akzeptiert?
Wenn Dein Programm keine Parameter akzeptiert, musst Du den Code anpassen, um sicherzustellen, dass das Programm ohne Parameter gestartet wird.

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