Registriert seit: 08.07.2016
Version(en): 2016
13.12.2017, 14:10
(Dieser Beitrag wurde zuletzt bearbeitet: 13.12.2017, 14:10 von o0Julia0o.)
hi, so klappt das: Code: Sub Exestarten() TaskID = Shell("c:\windows\system32\notepad.exe", vbNormalNoFocus) End Sub
In A33 in Tabelle Rech steht: Code: c:\windows\system32\notepad.exe
So klappt es aber nicht. Beim Code eingeben sagt er: Code: Sub Exestarten() TaskID = Shell("Worksheets("Rech").Range("A33")", vbMaximizedFocus) End Sub
Rech wird dann markiert & gesagt: "Erwarte Listentrennzeichen oder )"
Kann ich keine Zelle angeben, wo der Pfad drin steht als Ergebnis? lieben Dank! Julia :)
Registriert seit: 11.03.2015
Version(en): mittlerweile meistens 2019
Hallo, ungetestet: Code: TaskID = Shell("""Worksheets("Rech").Range("A33")""", vbMaximizedFocus)
Gruß Michael
Registriert seit: 08.07.2016
Version(en): 2016
13.12.2017, 14:30
(Dieser Beitrag wurde zuletzt bearbeitet: 13.12.2017, 14:30 von o0Julia0o.)
Die Fehlermeldung bleibt leider identisch. Wenn ich es so mache: Code: Sub Exestarten() TaskID = Shell("""Worksheets(Rech).Range(A33)""", vbMaximizedFocus) End Sub
dann ist der Fehler weg. Aber wenn ich den Code ausführe, sagt der: "Datei nicht gefunden". Obwohl ja der gleiche Dateiname im Feld A33 steht, wie ja ganz oben im 1. funktionierendem Beispiel. Die Datei ist vorhanden. Der Pfad auch korrekt. Wenn ich ihn aus dem Feld nehme und dann im Explorer einfüge, wird die Datei gestartet.
Das macht überigens das gleiche: Code: Sub Exestarten() TaskID = Shell("Worksheets(Rech).Range(A33)", vbMaximizedFocus) End Sub
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo, das ist gar nicht so einfach, gerade die Schreibweise nicht zu probieren, die funktioniert. ;) Sub Exestarten() TaskID = Shell(Worksheets("Rech").Range("A33").Value, vbMaximizedFocus) End Sub Gruß Uwe
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28
• o0Julia0o
Registriert seit: 11.03.2015
Version(en): mittlerweile meistens 2019
Sorry, habe mich vertan, eigentlich meinte ich es so: Code: TaskID = Shell(""""&Worksheets("Rech").Range("A33")&"""", vbMaximizedFocus)
Gruß Michael
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
Und was fängt man dann mit dem Long an? Gibt es eine Vorgeschichte?
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 08.07.2016
Version(en): 2016
14.12.2017, 18:16
(Dieser Beitrag wurde zuletzt bearbeitet: 14.12.2017, 18:16 von o0Julia0o.)
(13.12.2017, 15:14)Kuwer schrieb: das ist gar nicht so einfach, gerade die Schreibweise nicht zu probieren, die funktioniert. ;)Sub Exestarten() TaskID = Shell(Worksheets("Rech").Range("A33").Value, vbMaximizedFocus) End Sub tja, und ich habe bestimmt noch 15-19 weitere Schreibweisen probiert gehabt. Deine funzt genauso wie die von Steuerfuzzi: (13.12.2017, 15:40)Der Steuerfuzzi schrieb: Sorry, habe mich vertan, eigentlich meinte ich es so:
Code: TaskID = Shell(""""&Worksheets("Rech").Range("A33")&"""", vbMaximizedFocus)
Welches Long meinst du? Danke!
Registriert seit: 11.03.2015
Version(en): mittlerweile meistens 2019
(14.12.2017, 18:16)o0Julia0o schrieb: Welches Long meinst du? Ralf meint wohl den Rückgabewert, den Shell zurückgibt und den Du in die Variable TaskID schreibst (dies ist mW die Tasknummer des Shell-Befehls).
Gruß Michael
Registriert seit: 08.07.2016
Version(en): 2016
14.12.2017, 19:40
(Dieser Beitrag wurde zuletzt bearbeitet: 14.12.2017, 19:40 von o0Julia0o.)
achso, damit kann man dann den task wieder schließen. Allerdins müsste man dann die Zeit angeben, bevor man die exe ausfhürt, wie lange sie laufen soll. Wir nicht genutzt von mir. Aber anders kann ich auch keine exe-Datei starten.
Interessant wäre, wenn man einen key mitgeben könnte, womit man die dann wieder schließen könnte, wenn die exe läuft.
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
Moin! (14.12.2017, 19:40)o0Julia0o schrieb: Aber anders kann ich auch keine exe-Datei starten. Na einfach so: Code: Shell "c:\windows\system32\notepad.exe", vbNormalNoFocus
OHNE Klammer um den Pfad. (14.12.2017, 19:40)o0Julia0o schrieb: Interessant wäre, wenn man einen key mitgeben könnte, womit man die dann wieder schließen könnte, wenn die exe läuft. Den brauchst Du nicht: Sub AufUndZu() Dim objWMI As Object, objProcessList As Object, objProcess As Object 'Notepad öffnen Shell "c:\windows\system32\notepad.exe", vbNormalNoFocus Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") Set objProcessList = objWMI.ExecQuery("Select * from Win32_Process Where Name = 'notepad.exe'") 'Schließen For Each objProcess In objProcessList objProcess.Terminate (0) Next End Sub Ich befürchte aber, Du machst den hundertsten Schritt vor dem dritten. Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:1 Nutzer sagt Danke an RPP63 für diesen Beitrag 28
• o0Julia0o
|