Microsoft Excel

Herbers Excel/VBA-Archiv

Programm starten, wenn Enter-Taste gedrück wird | Herbers Excel-Forum


Betrifft: Programm starten, wenn Enter-Taste gedrück wird von: Matthias
Geschrieben am: 06.09.2008 15:46:08

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

  

Betrifft: AW: Programm starten, wenn Enter-Taste gedrück wird von: Ramses
Geschrieben am: 06.09.2008 15:54:20

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


  

Betrifft: AW: Programm starten, wenn Enter-Taste gedrück wir von: Matthias
Geschrieben am: 06.09.2008 16:05:27

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


  

Betrifft: AW: Programm starten, wenn Enter-Taste gedrück wir von: Walter
Geschrieben am: 06.09.2008 16:12:25

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


  

Betrifft: AW: Programm starten, wenn Enter-Taste gedrück wir von: Matthias
Geschrieben am: 06.09.2008 16:26:15

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


  

Betrifft: AW: Programm starten, wenn Enter-Taste gedrück wir von: Matthias
Geschrieben am: 06.09.2008 18:19:55

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


  

Betrifft: AW: Programm starten, wenn Enter-Taste gedrück wir von: Ramses
Geschrieben am: 06.09.2008 19:21:23

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


  

Betrifft: AW: Programm starten, wenn Enter-Taste gedrück wir von: Matthias
Geschrieben am: 06.09.2008 19:28:17

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:/


  

Betrifft: Warum... von: Ramses
Geschrieben am: 06.09.2008 19:38:02

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


  

Betrifft: AW: Warum... von: Matthias
Geschrieben am: 07.09.2008 11:41:27

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


  

Betrifft: AW: Warum... von: Ramses
Geschrieben am: 07.09.2008 13:42:59

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


Beiträge aus den Excel-Beispielen zum Thema "Programm starten, wenn Enter-Taste gedrück wird"