Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Jack Sons
 
Posts: n/a
Default ingnore nonexisting subrouitine

Hi all,

In the code below ABCD can be executed if it is a subroutine - sub ABCD() -
in a module elsewhere in the same project. If ABCD is a not an existing sub
the execution will halt, an error message wil appear on screen and a sound
wil be produced. Fore some reason I want to hear that sound but I don't want
the the program to halt. If possible it would be nice if also the message
box does not appear, but I need to hear the error sound. To my regret I did
not succeed with the code below.

Anybody who knows what code is needed to let the program continue when
execution comes to the line with the undefined ABCD but do let the error
message sound hear?

Jack Sons
The Netherlands


Sub ingnoreABCD()
............ ' here the program already did some things
Application.DisplayAlerts = False
ABCD
Application.DisplayAlerts = True
............... ' here I want to do what the program should do
End Sub


  #2   Report Post  
Ron de Bruin
 
Posts: n/a
Default

Hi Jack

See this code on Chip's site

You can use the VBA Extensibility tools to determine whether a module exists, or a procedure exists in a module.

Function ModuleExists(ModuleName As String) As Boolean
On Error Resume Next
ModuleExists = Len( _
ThisWorkbook.VBProject.VBComponents(ModuleName).Na me) < 0
End Function

Function ProcedureExists(ProcedureName As String, _
ModuleName As String) As Boolean
On Error Resume Next
If ModuleExists(ModuleName) = True Then
ProcedureExists = ThisWorkbook.VBProject.VBComponents(ModuleName) _
.CodeModule.ProcStartLine(ProcedureName, vbext_pk_Proc) < 0
End If
End Function

http://www.cpearson.com/excel/vbe.htm




--
Regards Ron de Bruin
http://www.rondebruin.nl


"Jack Sons" wrote in message ...
Hi all,

In the code below ABCD can be executed if it is a subroutine - sub ABCD() - in a module elsewhere in the same project. If ABCD is
a not an existing sub the execution will halt, an error message wil appear on screen and a sound wil be produced. Fore some reason
I want to hear that sound but I don't want the the program to halt. If possible it would be nice if also the message box does not
appear, but I need to hear the error sound. To my regret I did not succeed with the code below.

Anybody who knows what code is needed to let the program continue when execution comes to the line with the undefined ABCD but do
let the error message sound hear?

Jack Sons
The Netherlands


Sub ingnoreABCD()
........... ' here the program already did some things
Application.DisplayAlerts = False
ABCD
Application.DisplayAlerts = True
.............. ' here I want to do what the program should do
End Sub



  #3   Report Post  
Ron Rosenfeld
 
Posts: n/a
Default

On Sun, 11 Sep 2005 10:51:55 +0200, "Jack Sons" wrote:

Hi all,

In the code below ABCD can be executed if it is a subroutine - sub ABCD() -
in a module elsewhere in the same project. If ABCD is a not an existing sub
the execution will halt, an error message wil appear on screen and a sound
wil be produced. Fore some reason I want to hear that sound but I don't want
the the program to halt. If possible it would be nice if also the message
box does not appear, but I need to hear the error sound. To my regret I did
not succeed with the code below.

Anybody who knows what code is needed to let the program continue when
execution comes to the line with the undefined ABCD but do let the error
message sound hear?

Jack Sons
The Netherlands


Sub ingnoreABCD()
........... ' here the program already did some things
Application.DisplayAlerts = False
ABCD
Application.DisplayAlerts = True
.............. ' here I want to do what the program should do
End Sub


Take a look at the On Error statement and also the Beep statement.


--ron
  #4   Report Post  
Norman Jones
 
Posts: n/a
Default

Hi Ron.

Take a look at the On Error statement and also the Beep statement.


I do not think that a call to a non-existant procedure produces a trappable
error.

I think that the approach similar to that advocated by Ron de Bruin would be
necessary.

---
Regards,
Norman


"Ron Rosenfeld" wrote in message
...
On Sun, 11 Sep 2005 10:51:55 +0200, "Jack Sons" wrote:

Hi all,

In the code below ABCD can be executed if it is a subroutine - sub
ABCD() -
in a module elsewhere in the same project. If ABCD is a not an existing
sub
the execution will halt, an error message wil appear on screen and a sound
wil be produced. Fore some reason I want to hear that sound but I don't
want
the the program to halt. If possible it would be nice if also the message
box does not appear, but I need to hear the error sound. To my regret I
did
not succeed with the code below.

Anybody who knows what code is needed to let the program continue when
execution comes to the line with the undefined ABCD but do let the error
message sound hear?

Jack Sons
The Netherlands


Sub ingnoreABCD()
........... ' here the program already did some things
Application.DisplayAlerts = False
ABCD
Application.DisplayAlerts = True
.............. ' here I want to do what the program should do
End Sub


Take a look at the On Error statement and also the Beep statement.


--ron



  #5   Report Post  
Jack Sons
 
Posts: n/a
Default

Ron,

I already tried On Error resume next like low, but it didn't help. Other
ideas?

Jack.


Sub ingnoreABCD()
............ ' here the program already did some things
Application.DisplayAlerts = False
On Error Resume Next
ABCD
Application.DisplayAlerts = True
............... ' here I want to do what the program should do
End Sub




"Ron Rosenfeld" schreef in bericht
...
On Sun, 11 Sep 2005 10:51:55 +0200, "Jack Sons" wrote:

Hi all,

In the code below ABCD can be executed if it is a subroutine - sub
ABCD() -
in a module elsewhere in the same project. If ABCD is a not an existing
sub
the execution will halt, an error message wil appear on screen and a sound
wil be produced. Fore some reason I want to hear that sound but I don't
want
the the program to halt. If possible it would be nice if also the message
box does not appear, but I need to hear the error sound. To my regret I
did
not succeed with the code below.

Anybody who knows what code is needed to let the program continue when
execution comes to the line with the undefined ABCD but do let the error
message sound hear?

Jack Sons
The Netherlands


Sub ingnoreABCD()
........... ' here the program already did some things
Application.DisplayAlerts = False
ABCD
Application.DisplayAlerts = True
.............. ' here I want to do what the program should do
End Sub


Take a look at the On Error statement and also the Beep statement.


--ron





  #6   Report Post  
Ron Rosenfeld
 
Posts: n/a
Default

On Sun, 11 Sep 2005 12:07:48 +0100, "Norman Jones"
wrote:

Hi Ron.

Take a look at the On Error statement and also the Beep statement.


I do not think that a call to a non-existant procedure produces a trappable
error.

I think that the approach similar to that advocated by Ron de Bruin would be
necessary.

---
Regards,
Norman


I didn't realize that. Thank you for pointing it out.
--ron
  #7   Report Post  
Ron Rosenfeld
 
Posts: n/a
Default

On Sun, 11 Sep 2005 13:37:45 +0200, "Jack Sons" wrote:

Ron,

I already tried On Error resume next like low, but it didn't help. Other
ideas?

Jack.



See Ron de Bruin's suggestion
--ron
  #8   Report Post  
Dave Peterson
 
Posts: n/a
Default

I think Ron forgot to add to change the Call to Application.Run <bg.

This "worked" for me if I spelled "doesitexist" as "NoItDoesNot".

Option Explicit
Sub aaaa()
On Error Resume Next
Application.Run ThisWorkbook.Name & "!doesitexist"
If Err.Number < 0 Then
Beep
Err.Clear
End If
On Error GoTo 0
End Sub
Sub doesitexist()
MsgBox "yes"
End Sub



Ron Rosenfeld wrote:

On Sun, 11 Sep 2005 10:51:55 +0200, "Jack Sons" wrote:

Hi all,

In the code below ABCD can be executed if it is a subroutine - sub ABCD() -
in a module elsewhere in the same project. If ABCD is a not an existing sub
the execution will halt, an error message wil appear on screen and a sound
wil be produced. Fore some reason I want to hear that sound but I don't want
the the program to halt. If possible it would be nice if also the message
box does not appear, but I need to hear the error sound. To my regret I did
not succeed with the code below.

Anybody who knows what code is needed to let the program continue when
execution comes to the line with the undefined ABCD but do let the error
message sound hear?

Jack Sons
The Netherlands


Sub ingnoreABCD()
........... ' here the program already did some things
Application.DisplayAlerts = False
ABCD
Application.DisplayAlerts = True
.............. ' here I want to do what the program should do
End Sub


Take a look at the On Error statement and also the Beep statement.

--ron


--

Dave Peterson
  #9   Report Post  
Norman Jones
 
Posts: n/a
Default

Hi Dave,

A good idea!

I had not thought of using the procedure's name string (as required by the
Run method) and thus avoiding the compile error.

Thank you!

---
Regards,
Norman



"Dave Peterson" wrote in message
...
I think Ron forgot to add to change the Call to Application.Run <bg.

This "worked" for me if I spelled "doesitexist" as "NoItDoesNot".

Option Explicit
Sub aaaa()
On Error Resume Next
Application.Run ThisWorkbook.Name & "!doesitexist"
If Err.Number < 0 Then
Beep
Err.Clear
End If
On Error GoTo 0
End Sub
Sub doesitexist()
MsgBox "yes"
End Sub



Ron Rosenfeld wrote:

On Sun, 11 Sep 2005 10:51:55 +0200, "Jack Sons" wrote:

Hi all,

In the code below ABCD can be executed if it is a subroutine - sub
ABCD() -
in a module elsewhere in the same project. If ABCD is a not an existing
sub
the execution will halt, an error message wil appear on screen and a
sound
wil be produced. Fore some reason I want to hear that sound but I don't
want
the the program to halt. If possible it would be nice if also the
message
box does not appear, but I need to hear the error sound. To my regret I
did
not succeed with the code below.

Anybody who knows what code is needed to let the program continue when
execution comes to the line with the undefined ABCD but do let the error
message sound hear?

Jack Sons
The Netherlands


Sub ingnoreABCD()
........... ' here the program already did some things
Application.DisplayAlerts = False
ABCD
Application.DisplayAlerts = True
.............. ' here I want to do what the program should do
End Sub


Take a look at the On Error statement and also the Beep statement.

--ron


--

Dave Peterson



  #10   Report Post  
Jack Sons
 
Posts: n/a
Default

Dave,

Thanks for the code.

Norman,

Thanks for the explanation.

Jack.
"Norman Jones" schreef in bericht
...
Hi Dave,

A good idea!

I had not thought of using the procedure's name string (as required by the
Run method) and thus avoiding the compile error.

Thank you!

---
Regards,
Norman



"Dave Peterson" wrote in message
...
I think Ron forgot to add to change the Call to Application.Run <bg.

This "worked" for me if I spelled "doesitexist" as "NoItDoesNot".

Option Explicit
Sub aaaa()
On Error Resume Next
Application.Run ThisWorkbook.Name & "!doesitexist"
If Err.Number < 0 Then
Beep
Err.Clear
End If
On Error GoTo 0
End Sub
Sub doesitexist()
MsgBox "yes"
End Sub



Ron Rosenfeld wrote:

On Sun, 11 Sep 2005 10:51:55 +0200, "Jack Sons"
wrote:

Hi all,

In the code below ABCD can be executed if it is a subroutine - sub
ABCD() -
in a module elsewhere in the same project. If ABCD is a not an existing
sub
the execution will halt, an error message wil appear on screen and a
sound
wil be produced. Fore some reason I want to hear that sound but I don't
want
the the program to halt. If possible it would be nice if also the
message
box does not appear, but I need to hear the error sound. To my regret I
did
not succeed with the code below.

Anybody who knows what code is needed to let the program continue when
execution comes to the line with the undefined ABCD but do let the
error
message sound hear?

Jack Sons
The Netherlands


Sub ingnoreABCD()
........... ' here the program already did some things
Application.DisplayAlerts = False
ABCD
Application.DisplayAlerts = True
.............. ' here I want to do what the program should do
End Sub


Take a look at the On Error statement and also the Beep statement.

--ron


--

Dave Peterson





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



All times are GMT +1. The time now is 01:19 AM.

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

About Us

"It's about Microsoft Excel"