Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1052to1056
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
andere Anwendung aus Excel schließen möglich?
26.02.2009 09:17:31
Karsten

Hallo...
Läßt sich aus Excel heraus eine Anwendung schließen?
Öffnen ging ja mit:
Set wshShell = CreateObject("WScript.Shell")
wshShell.Run "C:\WINDOWS\system32\Notizen.txt"
Aber eben schließen....
Danke für eure Hilfe
Gruß
Karsten

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Set wshShell = Nothing (owT)
26.02.2009 09:19:24
Renee

AW: Set wshShell = Nothing (owT)
26.02.2009 09:41:02
Karsten
Hallo Renee,
danke, aber ich werde nicht schlau daraus.
Wenn ich Set wshShell = Nothing (owT) eingebe kommt eine Felermeldung und wenn ich
Set wshShell = Nothing kommt keine Fehlermeldung, aber es schließt sich noch keine Anwendung.
Was mach ich noch falsch?
Gruß
Karsten
AW: Set wshShell = Nothing (mT)
26.02.2009 10:01:36
Renee
Hi Karsten,
Set wshShell = Nothing beendet nix, sondern setzt das Objekt in deinem Code zurück.
Zeig doch mal deinen vollständigen und erklär was du damit erreichen willst.
Warum beginnen Anfänger immer gleich mit VBA oder sogar mit VBS-Scripting ?
Verstehst du was mit den Dingern abgeht ? Ich meistens auch nicht!
GreetZ Renée
Anzeige
AW: Set wshShell = Nothing (mT)
26.02.2009 10:17:43
Karsten
Hallo Renee,
ich möchte, dass, wenn ich meine "Abrechnungen" im Excel schließe, sich gleichzeitig meine "Notizen.txt" schließt. Geht so etwas den überhaupt?
Gruß
Karsten
Vieles ist möglich,
26.02.2009 10:20:11
Renee
und viel mehr ist nicht möglich, Karsten
Die konkrete Antwort auf deine Frage: "Ja, mit ziemlich hoher Wahrscheinlichkeit"
GreetZ Renée
AW: Vieles ist möglich,
26.02.2009 10:25:24
Karsten
Würdes du mir auch verraten, wie, natürlich nur wenn du es weißt?
Gruß
Karsten
AW: z.B. mit Hilfe des Archivs....
26.02.2009 12:55:32
Karsten
Hallo Renee,
danke, hab es mal so versucht, mit Notepad exe., aber bei:
For Each objProcess In objProcesses
kommt immer die Meldung Automatisierungsfehler.
Option Explicit

Sub Programm_abschiessen()
Const STRPC As String = "."
Dim objWMI As Object, objProcesses As Object, objProcess As Object
Set objWMI = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & STRPC & "\root\cimv2")
Set objProcesses = objWMI.ExecQuery _
("Select * from Win32_Process Where Name = notepad.exe")
For Each objProcess In objProcesses
objProcess.Terminate
Next
End Sub


wenn du mir noch weiterhelfen könntes, wäre ich die dankbar.
Gruß
Karsten

Anzeige
AW: z.B. mit Hilfe des Archivs....
26.02.2009 13:07:59
Luschi
Hallo Karsten,
schau Dir noch mal den Link von Renee an, dann wirst Du den fehler auch finden.
Hier ein kleiner Tipp: ("Select * from Win32_Process Where Name = 'notepad.exe'")
Gruß von Luschi
aus klein-Paris
Meine Rede...
26.02.2009 13:13:31
Renee
Hi Karsten,
wie gehabt: Warum beginnen Anfänger immer gleich mit VBA oder sogar mit VBS-Scripting ?
Code 1:1 und ungesehen übernehmen & anzupassen kann zu schwerwiegenden Krankheiten führen...
Es fehlen Gänsefüsschen und Error-Handler:

Sub Programm_abschiessen()
Const STRPC As String = "."
Dim errMsg As String
errMsg = "Fehler in Programm abschiessen"
Dim objWMI As Object, objProcesses As Object, objProcess As Object
On Error GoTo errHandler
Set objWMI = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & STRPC & "\root\cimv2")
Set objProcesses = objWMI.ExecQuery _
("Select * from Win32_Process Where Name = 'notepad.exe'")
For Each objProcess In objProcesses
objProcess.Terminate
Next
errMsg = ""
errHandler:
If errMsg  "" Then MsgBox errMsg, vbOKOnly + vbCritical, "WMI-Error"
Set objProcess = Nothing
Set objProcesses = Nothing
Set objWMI = Nothing
End Sub


GreetZ Renée

Anzeige
AW: Meine Rede...
26.02.2009 19:45:58
Karsten
Hallo Renee,
Als Anfänger arbeite ich immerhin schon über 10 Jahre erfolgreich mit Excel. Meine bewährten Stärken sind nun mal das Kopieren und Einfügen... und das nett fragen. Allerbesten Dank!
Dein
Pflegefall
AW: Meine Rede...
26.02.2009 19:51:46
Karsten
Hallo Renee,
jetzt, wo ich weiß, dass "Programm abschießen" geht, fällt mir ein, besagte Makro soll ausgelöst werden, wenn ich Excel schließe. Geht das überhaupt und wenn ja, wie?
Gruß
Karsten
Workbook_BeforeClose...
26.02.2009 20:22:13
Renee
Hi Karsten,
Diesen Code (zusätzlich) in DieseArbeitsmappe:


Private Sub Workbook_BeforeClose(Cancel As Boolean)
Programm_abschiessen
End Sub


GreetZ Renée
Anzeige
AW: Workbook_BeforeClose...
26.02.2009 20:41:58
Karsten
Hallo Renee,
geht leider noch nicht. Bei:
For Each objProcess In objProcesses kommt "Automatisierungsfehler"
Gruß
Karsten
Karsten, bitte zeige mal
26.02.2009 20:48:55
Renee
WO ? in welchem Kontext (DieseArbeitsmappe, Tabelle, Modul, Klasse, Userform) hast du welchen Code.
Den Automatisierungsfehler hatten wir doch schon oben durchgekaut.
Lad doch mal deine Mappe hoch!
GreetZ Renée
Das ist der älteste Code!
26.02.2009 21:09:38
Renee
Kopier den Code mit den Gänsefüüüüüüüüüssssssschen!!! in das Modul!!!
GreetZ Renée
AW: Das ist der älteste Code!
26.02.2009 21:22:30
Karsten
Hallo Renee,
Ich kapiere es nicht. Wo welche Gänsefüßchen. Die ' die blinken, sind doch keine oder was meinst damit?
Gruß
Karsten
Anzeige
Diesen Code....
26.02.2009 21:29:01
Renee
DIESEN Code in das Modul kopieren, bitte:

Sub Programm_abschiessen()
Const STRPC As String = "."
Dim errMsg As String
errMsg = "Fehler in Programm abschiessen"
Dim objWMI As Object, objProcesses As Object, objProcess As Object
On Error GoTo errHandler
Set objWMI = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & STRPC & "\root\cimv2")
Set objProcesses = objWMI.ExecQuery _
("Select * from Win32_Process Where Name = 'notepad.exe'")
For Each objProcess In objProcesses
objProcess.Terminate
Next
errMsg = ""
errHandler:
If errMsg  "" Then MsgBox errMsg, vbOKOnly + vbCritical, "WMI-Error"
Set objProcess = Nothing
Set objProcesses = Nothing
Set objWMI = Nothing
End Sub


oder heisst der Prozess den du abschiessen willst saplogon.exe ?
Dann muss auch dieser in Hooochkommas also .... 'saplogon.exe'"
Die Dinger blinken, damit sie dir ins Auge stechen und ja es sind keine Gänsefüsschen, sondern Hochkommas, aber sie sind lebensnotwendig für den Code!
GreetZ Renée

Anzeige
AW: Das ist der älteste Code!
26.02.2009 21:27:19
Karsten
ach Quatsch, jetzt gehts! Nochmal Danke.
Karsten

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige