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

Forumthread: Sub oder Function nicht definiert

Sub oder Function nicht definiert
04.06.2008 13:02:54
LotharP
Hallo Zusammen,
ich habe eine Funktion, die ich nun auch schon länger in Gebrauch habe, mit der wird beim Packen einer Datei überwacht wann Winzip seinen Prozess beendet hat.
Ein Kollege aus der EDV hat mir das mal zur Verfügung gestellt.
'
' Dies ist die Function die die Ausführung überwacht
'

Public Function ShellX( _
ByVal PathName As String, _
Optional ByVal WindowStyle As Long = vbMinimizedFocus, _
Optional ByVal Events As Boolean = True _
) As Long
'Deklarationen:
Const STILL_ACTIVE = &H103&
Const PROCESS_QUERY_INFORMATION = &H400&
Dim ProcId As Long
Dim ProcHnd As Long
'Prozess-Handle holen:
ProcId = Shell(PathName, WindowStyle)
ProcHnd = OpenProcess(PROCESS_QUERY_INFORMATION, True, ProcId)
'Auf Prozess-Ende warten:
Do
If Events Then DoEvents
GetExitCodeProcess ProcHnd, ShellX
Loop While ShellX = STILL_ACTIVE
'Aufräumen:
CloseHandle ProcHnd
End Function


Er meckert er würde die Sub oder Function nicht kennen OPEN PROCESS.
Ich habe versucht die Verweise neu zu setzen.
Habe VBA for appl.
Die 11er obj Library, wobei ich diese nicht abwählen kann weil er diese ständig in Gebrauch hat!?
Dann die OLE Automation.
Komischerweise habe ich auch nochmal die 11er OBJ.Bib!?
Von den VBA F. appl. habe ich zudem sehr viele Möglichkeiten!
Hoffe es hat jemand eine Idee!?
Vielen dank im Vorraus und Gruß
Lothar

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sub oder Function nicht definiert
04.06.2008 13:45:13
Rudi
Hallo,
das ist ein API-Aufruf. Du musst die Function deklarieren.
Gruß
Rudi

AW: Sub oder Function nicht definiert
04.06.2008 14:20:00
LotharP
Hallo und Danke für die Antworten!
Was bedeutet das "du musst die Funktion deklarieren"?!
Wie gesagt, das Ding hatte bisher geklappt!
Hier der geamte Code:
Option Explicit
Sub ALTPACKEN()
Dim PERIODE As String
PERIODE = Left(Right(ActiveWorkbook.Name, 8), 4)
ZIPALTPACKEN (PERIODE)
End Sub


'
Sub ZIPALTPACKEN(PERIODE)
Dim i&
Dim sPath$, sZip$
Dim dDate As String
Dim eDate
Dim ZIPNAME
dDate = PERIODE
eDate = Format(Now(), "ddmm")
sZip = "K:\PRUENTE\ASINCOPATEST\BASISREPORTS\ACCESSMONTH\ACCESSMONTH" & dDate & eDate
i = 1
Do While i ZIPNAME = "K:\PRUENTE\ASINCOPATEST\BASISREPORTS\ACCESSMONTH\BASEFY2008" & i & ".xls"
'Shell "c:\programme\winzip\winzip32.exe -min -a " & sZip & " " & ZIPNAME
'alter Aufruf ohne Warten der Anwendung, ist so FEHLERHAFT!
'##########################################################################################
ShellX "c:\programme\winzip\winzip32.exe -min -a " & sZip & " " & ZIPNAME, vbNormalFocus
'##########################################################################################
'Aufruf der Shellx Function
'ShellX "notepad.exe", vbNormalFocus Shellx "Anwendung.exe",VbNormalFocus
'Zwingt das Programm auf Winzip zu warten
i = i + 1
Kill ZIPNAME
Loop
ZIPNAME = sZip & ".zip"
sZip = "K:\PRUENTE\ASINCOPATEST\BASISREPORTS\ACCESSMONTH\ACCESSMONTH" & dDate
ShellX "c:\programme\winzip\winzip32.exe -min -a -r " & sZip & " " & ZIPNAME, vbNormalFocus
End Sub


'
' Dies ist die Function die die Ausführung überwacht
'


Public Function ShellX( _
ByVal PathName As String, _
Optional ByVal WindowStyle As Long = vbMinimizedFocus, _
Optional ByVal Events As Boolean = True _
) As Long
'Deklarationen:
Const STILL_ACTIVE = &H103&
Const PROCESS_QUERY_INFORMATION = &H400&
Dim ProcId As Long
Dim ProcHnd As Long
'Prozess-Handle holen:
ProcId = Shell(PathName, WindowStyle)
ProcHnd = OpenProcess(PROCESS_QUERY_INFORMATION, True, ProcId)
'Auf Prozess-Ende warten:
Do
If Events Then DoEvents
GetExitCodeProcess ProcHnd, ShellX
Loop While ShellX = STILL_ACTIVE
'Aufräumen:
CloseHandle ProcHnd
End Function


Angefangen wird mit ALTPACKEN!
Vieleicht hilft das weiter.
Gruß
Lothar

Anzeige
AW: Sub oder Function nicht definiert
04.06.2008 14:59:00
Rudi
Hallo,
irgendwo im Kopf des Moduls muss sowas gestanden haben:

Declare Function OpenProcess Lib "kernel32.dll" ( _
ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long


Gruß
Rudi
Google doch mal nach OpenProcess

Anzeige
AW: Sub oder Function nicht definiert
04.06.2008 15:05:18
LotharP
Hallo Rudi,
jepp das ist wohl richtig!!
Das wars wohl auch, da ist ein bisschen verloren gegangen!
Ich habe das Ganze noch in einer alten Version gefunden, da stands noch drin!!!!
Werds gleich probieren, auf jeden FAll vielen Dank für die Hilfe!!!
Auch den anderen beiden, die Links waren in jedem Fall eine Bereicherung, DAnke!!!!
Gruß
Lothar

Anzeige
Bitte sehr! Gruß - owT
05.06.2008 13:08:17
Luc:-?
:-?

Fürchte, dass entzieht sich einer Ferndiagnose...
04.06.2008 13:48:10
Luc:-?
...weitgehend, Lothar,
bzw müsste allesmögliche ausprobiert wdn...
Evtl kannst du es ja mal bei P@ulchen versuchen, der hat noch andere Hilfe-Möglichkeiten...
Gruß Luc :-?

AW: Sub oder Function nicht definiert
04.06.2008 14:03:25
Hoffi
Hallo,
wie Rudi schon sagt ist das eine Api Funktion.
Guck mal hier: http://www.aboutvb.de/khw/artikel/khwshell.htm
Da ist die Funktion gut beschrieben.
Grüße
Hoffi
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

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