![]() |
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? |
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? |
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? |
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? |
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? |
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? |
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 |
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? |
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? |
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 |
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? |
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