Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
ina ina is offline
external usenet poster
 
Posts: 120
Default VBA - createobject - If

Hello guys,

I need some help with this algorithm in VBA (createobject). My function
should open a instance of my program if the program is already open it
don't have to open it again. The problem is that this function open the
program twice, trice ... so on. Could someone help me on that

' I have this function to Open a program
Function OpenPHObject() As Object


Dim oExec As Object
Dim WshShell As Object
Dim bolPack As Boolean

' I set up a Object
Set WshShell = CreateObject("Wscript.Shell")

'if the program is not open, open it
If Err < 0 Then
Set oExec = WshShell.Exec("C:\Program Files\PH\PH.exe")
bolPack = True

Else
Msgbox "the program is open"

End If

DoEvents

On Error Resume Next

'Call the function as argument the Program object
Set OpenPHObject = oExec



errorHandler:
MsgBox Err.Number & " " & Err.Description


End Function

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 789
Default VBA - createobject - If

Hi
The Err object persists through the session, so maybe that is causing
multiple instances? Try

On error resume next
Err.Clear
Set WshShell = CreateObject("Wscript.Shell")
'if the program is not open, open it
If Err < 0 Then
Set oExec = WshShell.Exec("C:\Program Files\PH\PH.exe")
bolPack = True
Else
Msgbox "the program is open"
End If

on error goto 0

regards
Paul

  #3   Report Post  
Posted to microsoft.public.excel.programming
ina ina is offline
external usenet poster
 
Posts: 120
Default VBA - createobject - If

yes it is cool thank you because it works but when I try to call this
sub. I have an error run-time 91 error run-time error 91 object
variable or with block variable not set

do you know why?

Option Explicit

Sub test()

Dim oExec As Object

Set oExec = OpenPHObject()

Application.Wait (Now + TimeValue("0:00:10"))

Call CHObject(oExec)

End Sub


Function ClosePHObject(oExec As Object)

Dim WshShell As Object

'oExec.Quit
oExec.Terminate
Set WshShell = Nothing
Set oExec = Nothing

End Function

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
How To CreateObject In VB To AutoCad KinCheong Low via OfficeKB.com Excel Programming 0 January 20th 05 03:43 AM
Createobject (repost) keepITcool Excel Programming 0 July 14th 04 03:09 PM
CREATEOBJECT Using VB Karthik[_2_] Excel Programming 2 June 16th 04 09:08 PM
Difference between NEW and CREATEOBJECT? Mark[_36_] Excel Programming 3 February 19th 04 02:26 PM
Templates and CreateObject John Excel Programming 1 October 29th 03 01:07 PM


All times are GMT +1. The time now is 07:34 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"