INTELLIGENT WORK FORUMS FOR COMPUTER PROFESSIONALS
Log In
Come Join Us!
Are you a Computer / IT professional? Join Tek-Tips Forums!
- Talk With Other Members
- Be Notified Of Responses
To Your Posts
- Keyword Search
- One-Click Access To Your
Favorite Forums
- Automated Signatures
On Your Posts
- Best Of All, It's Free!
*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.
Posting Guidelines
Promoting, selling, recruiting, coursework and thesis posting is forbidden. Students Click Here
|
VBA Visual Basic for Applications (Microsoft) FAQ
VBA How To
Pause VBA code until "Shelled" event is complete by ETID
Posted: 4 Oct 02
|
I can't take credit for this...and I can't remember where I got this code...but It was free for the copying, either from this site or some other Web site.
'This code substitutes "Execmd" for "Shell"....See example at bottom
'Paste this at the module level
Public PAGE_HEADER_SUPCODE As String 'PRODUCER CODE FROM PAGE HEADER VIA EXTRACT PROCEEDURE Public PLANTCODE As String 'PRODUCER CODE FROM PAGE HEADER VIA FILE CREATED BY EXTRACT PROCEEDURE Public PLANTNAME As String 'PRODUCER NAME FROM PAGE HEADER VIA FILE CREATED BY EXTRACT PROCEEDURE Public PLANTTYPE As String 'PRODUCT TYPE FROM PAGE HEADER VIA FILE CREATED BY EXTRACT PROCEEDURE Public TBLX As String 'ALTERENATE PRODUCER CODE FROM USER (MUST LIVE IN TABLE A TO BE VALID) Public X As Single 'array1 marker Public StrTable_Name(20) As String 'ARRAY1 FROM PADOT.CFG FILE Public TBL As String 'array1 variable for padot.cfg file table names Public WEDT As String 'week ending date variable from input box in sub CONFIRM_WE_DATE Public LASTX As Single 'the last table in array1 Public T As Single 'timer value (NOT USED) Public WEDT_EMAIL As String 'WEEK ENDING DATE FROM 00 PAGE HEADER TABLE FOR E_MAIL FILE NAME Public DELAY As Long ' NOT USED Public FINDFILE As String 'find file for zip to confirm zip files have been written Public TITLE As String Public OLDTBLX As String Option Explicit
Private Type STARTUPINFO cb As Long lpReserved As String lpDesktop As String lpTitle As String dwX As Long dwY As Long dwXSize As Long dwYSize As Long dwXCountChars As Long dwYCountChars As Long dwFillAttribute As Long dwFlags As Long wShowWindow As Integer cbReserved2 As Integer lpReserved2 As Long hStdInput As Long hStdOutput As Long hStdError As Long End Type
Private Type PROCESS_INFORMATION hProcess As Long hThread As Long dwProcessID As Long dwThreadID As Long End Type
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal _ hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CreateProcessA Lib "kernel32" (ByVal _ lpApplicationName As Long, ByVal lpCommandLine As String, ByVal _ lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, _ ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, _ ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, _ lpStartupInfo As STARTUPINFO, lpProcessInformation As _ PROCESS_INFORMATION) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal _ hObject As Long) As Long
Private Const NORMAL_PRIORITY_CLASS = &H20& Private Const INFINITE = -1&
Option Compare Database
Public Sub ExecCmd(cmdline$) Dim proc As PROCESS_INFORMATION Dim start As STARTUPINFO Dim ReturnValue As Integer
' Initialize the STARTUPINFO structure: start.cb = Len(start)
' Start the shelled application: ReturnValue = CreateProcessA(0&, cmdline$, 0&, 0&, 1&, _ NORMAL_PRIORITY_CLASS, 0&, 0&, start, proc)
' Wait for the shelled application to finish: Do ReturnValue = WaitForSingleObject(proc.hProcess, 0) DoEvents Loop Until ReturnValue <> 258
ReturnValue = CloseHandle(proc.hProcess) End Sub
'-------------------------------------------------------------------------------------------------------
Sub example() 'Example of replacing "Shell" with "Execmd"...You won't need to paste this sub/function, just the first 2
'then use this syntax in place of Shell "Your shell string here"
'you would use...
ExecCmd "Your shell string here"
End Sub
'------------------------------------------------------------ |
Back to VBA Visual Basic for Applications (Microsoft) FAQ Index
Back to VBA Visual Basic for Applications (Microsoft) Forum |
|
|
|
Join Tek-Tips® Today!
Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.
Here's Why Members Love Tek-Tips Forums:
Talk To Other Members
- Notification Of Responses To Questions
- Favorite Forums One Click Access
- Keyword Search Of All Posts, And More...
Register now while it's still free!
Already a member? Close this window and log in.
Join Us Close