ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Ending session (https://www.excelbanter.com/excel-programming/365919-ending-session.html)

Freddie Mac

Ending session
 
I have a macro that does alot of things. Sometimes I want to call a sub that
ends the program for whatever reason. I dont know how to write this. My code
is:

Private Sub avbrytProgrammet(varDataSaknas)
MsgBox ("Error 402. Program session aborted.")
Me.End
End Sub

The line is wrong. How do you write this?

NickHK

Ending session
 
Depending on exactly what you mean by "End session", there is:
Exit Sub/Function - Stop execution the current routine
ThisWorkbook.Close - Close the current WB
Application.Quit - Close Excel

NickHK

"Freddie Mac" wrote in message
...
I have a macro that does alot of things. Sometimes I want to call a sub

that
ends the program for whatever reason. I dont know how to write this. My

code
is:

Private Sub avbrytProgrammet(varDataSaknas)
MsgBox ("Error 402. Program session aborted.")
Me.End
End Sub

The line is wrong. How do you write this?




Freddie Mac

Ending session
 
yes I know. But I want to quit rĂșnning the macro. The workbook shall still be
open..

"NickHK" skrev:

Depending on exactly what you mean by "End session", there is:
Exit Sub/Function - Stop execution the current routine
ThisWorkbook.Close - Close the current WB
Application.Quit - Close Excel

NickHK

"Freddie Mac" wrote in message
...
I have a macro that does alot of things. Sometimes I want to call a sub

that
ends the program for whatever reason. I dont know how to write this. My

code
is:

Private Sub avbrytProgrammet(varDataSaknas)
MsgBox ("Error 402. Program session aborted.")
Me.End
End Sub

The line is wrong. How do you write this?





NickHK

Ending session
 
Exit Sub then

NickHK

"Freddie Mac" wrote in message
...
yes I know. But I want to quit rúnning the macro. The workbook shall still

be
open..

"NickHK" skrev:

Depending on exactly what you mean by "End session", there is:
Exit Sub/Function - Stop execution the current routine
ThisWorkbook.Close - Close the current WB
Application.Quit - Close Excel

NickHK

"Freddie Mac" wrote in message
...
I have a macro that does alot of things. Sometimes I want to call a

sub
that
ends the program for whatever reason. I dont know how to write this.

My
code
is:

Private Sub avbrytProgrammet(varDataSaknas)
MsgBox ("Error 402. Program session aborted.")
Me.End
End Sub

The line is wrong. How do you write this?







Freddie Mac

Ending session
 
well the sub is not the whole program. I have e.g. a main sub that calls
other subs. In these subs I sometimes call the sub that I want to use for
exiting the program. If I write exit sub I just exit the sub that is used for
closing the program and I will return to where ever I was in the code. Is
there no way of solving the problem?

"NickHK" skrev:

Exit Sub then

NickHK

"Freddie Mac" wrote in message
...
yes I know. But I want to quit rĂșnning the macro. The workbook shall still

be
open..

"NickHK" skrev:

Depending on exactly what you mean by "End session", there is:
Exit Sub/Function - Stop execution the current routine
ThisWorkbook.Close - Close the current WB
Application.Quit - Close Excel

NickHK

"Freddie Mac" wrote in message
...
I have a macro that does alot of things. Sometimes I want to call a

sub
that
ends the program for whatever reason. I dont know how to write this.

My
code
is:

Private Sub avbrytProgrammet(varDataSaknas)
MsgBox ("Error 402. Program session aborted.")
Me.End
End Sub

The line is wrong. How do you write this?







NickHK

Ending session
 
If you have error trapping in your main sub, you can an error when you know
you need to exit the whole code and the error will bubble up the the next
active error trap. e.g.
Sub Mainstart
On Error Goto handler
Call Macro1
Exit Sub
Handler:
Select Case Err.Number
Case 15000 'Or whatever err.number you use
msgBox "Need to Quit"
Case Else
'Handle other errors
End Select
End Sub

Sub macro1
'Whatever code
call macro2
'More code
End sub

Sub macro2
'Code...
'Something happens that means needs to quit
Err.raise 15000
End

NickHK

"Freddie Mac" wrote in message
...
well the sub is not the whole program. I have e.g. a main sub that calls
other subs. In these subs I sometimes call the sub that I want to use for
exiting the program. If I write exit sub I just exit the sub that is used

for
closing the program and I will return to where ever I was in the code. Is
there no way of solving the problem?

"NickHK" skrev:

Exit Sub then

NickHK

"Freddie Mac" wrote in message
...
yes I know. But I want to quit rúnning the macro. The workbook shall

still
be
open..

"NickHK" skrev:

Depending on exactly what you mean by "End session", there is:
Exit Sub/Function - Stop execution the current routine
ThisWorkbook.Close - Close the current WB
Application.Quit - Close Excel

NickHK

"Freddie Mac" wrote in

message
...
I have a macro that does alot of things. Sometimes I want to call

a
sub
that
ends the program for whatever reason. I dont know how to write

this.
My
code
is:

Private Sub avbrytProgrammet(varDataSaknas)
MsgBox ("Error 402. Program session aborted.")
Me.End
End Sub

The line is wrong. How do you write this?









Scoops

Ending session
 

Freddie Mac wrote:
well the sub is not the whole program. I have e.g. a main sub that calls
other subs. In these subs I sometimes call the sub that I want to use for
exiting the program. If I write exit sub I just exit the sub that is used for
closing the program and I will return to where ever I was in the code. Is
there no way of solving the problem?


Hi Freddie

Check for the stop criteria in the parent routine.

Regards

Steve


Freddie Mac

Ending session
 
Thanks that seems like a nice way to handle the problem. However when trying
use your code I get "Unidentified etikett" (translation from swedish). My
code looks like:

Public Sub mainProgram()
Dim x As String
On Error GoTo handler
Call worksheetMaker(x)
........
Private Sub worksheetMaker(x As String)
If .......
Err.Raise 15000
........

and I dont know how to write the handler but I tried:

Private sub handler()
Select Case Err.Number
Case 15000
MsgBox "Need to Quit"
Case Else
'Handle other errors
End Select
End Sub

I am not very good at VB so please help me with this! I am most greatful for
any assistance!

"NickHK" skrev:

If you have error trapping in your main sub, you can an error when you know
you need to exit the whole code and the error will bubble up the the next
active error trap. e.g.
Sub Mainstart
On Error Goto handler
Call Macro1
Exit Sub
Handler:
Select Case Err.Number
Case 15000 'Or whatever err.number you use
msgBox "Need to Quit"
Case Else
'Handle other errors
End Select
End Sub

Sub macro1
'Whatever code
call macro2
'More code
End sub

Sub macro2
'Code...
'Something happens that means needs to quit
Err.raise 15000
End

NickHK

"Freddie Mac" wrote in message
...
well the sub is not the whole program. I have e.g. a main sub that calls
other subs. In these subs I sometimes call the sub that I want to use for
exiting the program. If I write exit sub I just exit the sub that is used

for
closing the program and I will return to where ever I was in the code. Is
there no way of solving the problem?

"NickHK" skrev:

Exit Sub then

NickHK

"Freddie Mac" wrote in message
...
yes I know. But I want to quit rĂșnning the macro. The workbook shall

still
be
open..

"NickHK" skrev:

Depending on exactly what you mean by "End session", there is:
Exit Sub/Function - Stop execution the current routine
ThisWorkbook.Close - Close the current WB
Application.Quit - Close Excel

NickHK

"Freddie Mac" wrote in

message
...
I have a macro that does alot of things. Sometimes I want to call

a
sub
that
ends the program for whatever reason. I dont know how to write

this.
My
code
is:

Private Sub avbrytProgrammet(varDataSaknas)
MsgBox ("Error 402. Program session aborted.")
Me.End
End Sub

The line is wrong. How do you write this?










NickHK

Ending session
 
The handler is not a separate routine, it is label within mainprogram,
followed by a colon ":". So
Sub MainProgram
On Error Goto Handler
'....Code
Exit Sub 'So you do not execute the Handler normally
Handler: '<<<<< Here
Select case.... etc

End Sub

"Freddie Mac" wrote in message
...
Thanks that seems like a nice way to handle the problem. However when

trying
use your code I get "Unidentified etikett" (translation from swedish). My
code looks like:

Public Sub mainProgram()
Dim x As String
On Error GoTo handler
Call worksheetMaker(x)
.......
Private Sub worksheetMaker(x As String)
If .......
Err.Raise 15000
.......

and I dont know how to write the handler but I tried:

Private sub handler()
Select Case Err.Number
Case 15000
MsgBox "Need to Quit"
Case Else
'Handle other errors
End Select
End Sub

I am not very good at VB so please help me with this! I am most greatful

for
any assistance!

"NickHK" skrev:

If you have error trapping in your main sub, you can an error when you

know
you need to exit the whole code and the error will bubble up the the

next
active error trap. e.g.
Sub Mainstart
On Error Goto handler
Call Macro1
Exit Sub
Handler:
Select Case Err.Number
Case 15000 'Or whatever err.number you use
msgBox "Need to Quit"
Case Else
'Handle other errors
End Select
End Sub

Sub macro1
'Whatever code
call macro2
'More code
End sub

Sub macro2
'Code...
'Something happens that means needs to quit
Err.raise 15000
End

NickHK

"Freddie Mac" wrote in message
...
well the sub is not the whole program. I have e.g. a main sub that

calls
other subs. In these subs I sometimes call the sub that I want to use

for
exiting the program. If I write exit sub I just exit the sub that is

used
for
closing the program and I will return to where ever I was in the code.

Is
there no way of solving the problem?

"NickHK" skrev:

Exit Sub then

NickHK

"Freddie Mac" wrote in

message
...
yes I know. But I want to quit rúnning the macro. The workbook

shall
still
be
open..

"NickHK" skrev:

Depending on exactly what you mean by "End session", there is:
Exit Sub/Function - Stop execution the current routine
ThisWorkbook.Close - Close the current WB
Application.Quit - Close Excel

NickHK

"Freddie Mac" wrote in

message
...
I have a macro that does alot of things. Sometimes I want to

call
a
sub
that
ends the program for whatever reason. I dont know how to write

this.
My
code
is:

Private Sub avbrytProgrammet(varDataSaknas)
MsgBox ("Error 402. Program session aborted.")
Me.End
End Sub

The line is wrong. How do you write this?












Kaak[_82_]

Ending session
 

You can write some of the code in functions like:

Function Task01(ByVal UserName as String) as Boolean

If UserName < "Administrator" Then
Task01 = False
Else
Task01 = True
End if

End Function

Then in your sub you can use

If Not Task01 Then Exit Sub


--
Kaak
------------------------------------------------------------------------
Kaak's Profile: http://www.excelforum.com/member.php...fo&userid=7513
View this thread: http://www.excelforum.com/showthread...hreadid=557234


Freddie Mac

Ending session
 
Great it works just perfect! Thanks!!!! Is it possible to send varaibles to
the error handler in some way? See i want to be able to send a varaible so i
can use a messagebox that displays what is wrong. the same type of error
occrus very often but with different variables. since i have many variables
it is impossible to define an error case for each variable....would be great
if you knew how to solve it!

"NickHK" skrev:

The handler is not a separate routine, it is label within mainprogram,
followed by a colon ":". So
Sub MainProgram
On Error Goto Handler
'....Code
Exit Sub 'So you do not execute the Handler normally
Handler: '<<<<< Here
Select case.... etc

End Sub

"Freddie Mac" wrote in message
...
Thanks that seems like a nice way to handle the problem. However when

trying
use your code I get "Unidentified etikett" (translation from swedish). My
code looks like:

Public Sub mainProgram()
Dim x As String
On Error GoTo handler
Call worksheetMaker(x)
.......
Private Sub worksheetMaker(x As String)
If .......
Err.Raise 15000
.......

and I dont know how to write the handler but I tried:

Private sub handler()
Select Case Err.Number
Case 15000
MsgBox "Need to Quit"
Case Else
'Handle other errors
End Select
End Sub

I am not very good at VB so please help me with this! I am most greatful

for
any assistance!

"NickHK" skrev:

If you have error trapping in your main sub, you can an error when you

know
you need to exit the whole code and the error will bubble up the the

next
active error trap. e.g.
Sub Mainstart
On Error Goto handler
Call Macro1
Exit Sub
Handler:
Select Case Err.Number
Case 15000 'Or whatever err.number you use
msgBox "Need to Quit"
Case Else
'Handle other errors
End Select
End Sub

Sub macro1
'Whatever code
call macro2
'More code
End sub

Sub macro2
'Code...
'Something happens that means needs to quit
Err.raise 15000
End

NickHK

"Freddie Mac" wrote in message
...
well the sub is not the whole program. I have e.g. a main sub that

calls
other subs. In these subs I sometimes call the sub that I want to use

for
exiting the program. If I write exit sub I just exit the sub that is

used
for
closing the program and I will return to where ever I was in the code.

Is
there no way of solving the problem?

"NickHK" skrev:

Exit Sub then

NickHK

"Freddie Mac" wrote in

message
...
yes I know. But I want to quit rĂșnning the macro. The workbook

shall
still
be
open..

"NickHK" skrev:

Depending on exactly what you mean by "End session", there is:
Exit Sub/Function - Stop execution the current routine
ThisWorkbook.Close - Close the current WB
Application.Quit - Close Excel

NickHK

"Freddie Mac" wrote in
message
...
I have a macro that does alot of things. Sometimes I want to

call
a
sub
that
ends the program for whatever reason. I dont know how to write
this.
My
code
is:

Private Sub avbrytProgrammet(varDataSaknas)
MsgBox ("Error 402. Program session aborted.")
Me.End
End Sub

The line is wrong. How do you write this?













NickHK

Ending session
 
You can either use a global variable.
Look at the full syntax for Err.Raise, as there are other arguments that may
be useful.

Or use the functionality outlined by Kaak to pass info back in a return
value, check its value after the call and progressing backwards.

NickHK

"Freddie Mac" wrote in message
...
Great it works just perfect! Thanks!!!! Is it possible to send varaibles

to
the error handler in some way? See i want to be able to send a varaible so

i
can use a messagebox that displays what is wrong. the same type of error
occrus very often but with different variables. since i have many

variables
it is impossible to define an error case for each variable....would be

great
if you knew how to solve it!

"NickHK" skrev:

The handler is not a separate routine, it is label within mainprogram,
followed by a colon ":". So
Sub MainProgram
On Error Goto Handler
'....Code
Exit Sub 'So you do not execute the Handler normally
Handler: '<<<<< Here
Select case.... etc

End Sub

"Freddie Mac" wrote in message
...
Thanks that seems like a nice way to handle the problem. However when

trying
use your code I get "Unidentified etikett" (translation from swedish).

My
code looks like:

Public Sub mainProgram()
Dim x As String
On Error GoTo handler
Call worksheetMaker(x)
.......
Private Sub worksheetMaker(x As String)
If .......
Err.Raise 15000
.......

and I dont know how to write the handler but I tried:

Private sub handler()
Select Case Err.Number
Case 15000
MsgBox "Need to Quit"
Case Else
'Handle other errors
End Select
End Sub

I am not very good at VB so please help me with this! I am most

greatful
for
any assistance!

"NickHK" skrev:

If you have error trapping in your main sub, you can an error when

you
know
you need to exit the whole code and the error will bubble up the the

next
active error trap. e.g.
Sub Mainstart
On Error Goto handler
Call Macro1
Exit Sub
Handler:
Select Case Err.Number
Case 15000 'Or whatever err.number you use
msgBox "Need to Quit"
Case Else
'Handle other errors
End Select
End Sub

Sub macro1
'Whatever code
call macro2
'More code
End sub

Sub macro2
'Code...
'Something happens that means needs to quit
Err.raise 15000
End

NickHK

"Freddie Mac" wrote in

message
...
well the sub is not the whole program. I have e.g. a main sub that

calls
other subs. In these subs I sometimes call the sub that I want to

use
for
exiting the program. If I write exit sub I just exit the sub that

is
used
for
closing the program and I will return to where ever I was in the

code.
Is
there no way of solving the problem?

"NickHK" skrev:

Exit Sub then

NickHK

"Freddie Mac" wrote in

message
...
yes I know. But I want to quit rúnning the macro. The workbook

shall
still
be
open..

"NickHK" skrev:

Depending on exactly what you mean by "End session", there

is:
Exit Sub/Function - Stop execution the current routine
ThisWorkbook.Close - Close the current WB
Application.Quit - Close Excel

NickHK

"Freddie Mac" wrote

in
message
...
I have a macro that does alot of things. Sometimes I want

to
call
a
sub
that
ends the program for whatever reason. I dont know how to

write
this.
My
code
is:

Private Sub avbrytProgrammet(varDataSaknas)
MsgBox ("Error 402. Program session aborted.")
Me.End
End Sub

The line is wrong. How do you write this?
















All times are GMT +1. The time now is 12:24 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com