Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Is there a way to get the VBE module and module line, given the procedure
and erl where an error occured? The idea is to move straight to the line in the VBE where the error occured after handling the error. I have numbered the lines per procedure with MZ Tools. I can move to the line when I have the module and the module line: With ThisWorkbook.VBProject.VBComponents(strModule).Cod eModule.CodePane .SetSelection lStartLine, 1, lStartLine, 1 .Show End With I could make my error handler retain the module as well as the procedure, but even then I am not sure I could get to the module line. RBS |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I don't believe you can get the module name in which the error
occurred. -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "RB Smissaert" wrote in message ... Is there a way to get the VBE module and module line, given the procedure and erl where an error occured? The idea is to move straight to the line in the VBE where the error occured after handling the error. I have numbered the lines per procedure with MZ Tools. I can move to the line when I have the module and the module line: With ThisWorkbook.VBProject.VBComponents(strModule).Cod eModule.CodePane .SetSelection lStartLine, 1, lStartLine, 1 .Show End With I could make my error handler retain the module as well as the procedure, but even then I am not sure I could get to the module line. RBS |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
OK, how about knowing the module name and the erl?
RBS "Chip Pearson" wrote in message ... I don't believe you can get the module name in which the error occurred. -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "RB Smissaert" wrote in message ... Is there a way to get the VBE module and module line, given the procedure and erl where an error occured? The idea is to move straight to the line in the VBE where the error occured after handling the error. I have numbered the lines per procedure with MZ Tools. I can move to the line when I have the module and the module line: With ThisWorkbook.VBProject.VBComponents(strModule).Cod eModule.CodePane .SetSelection lStartLine, 1, lStartLine, 1 .Show End With I could make my error handler retain the module as well as the procedure, but even then I am not sure I could get to the module line. RBS |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
As I said, you can't get the module name. Erl will return the
line number of the error, assuming that line has a label, otherwise it will return the most recent line label. Sub AAA() 10: On Error Resume Next 20: Debug.Print 1 / 0 30: Debug.Print Err.Source, Err.Number, Err.Description, Erl End Sub displays VBAProject 11 Division by zero 20 in the Immediate window. -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "RB Smissaert" wrote in message ... OK, how about knowing the module name and the erl? RBS "Chip Pearson" wrote in message ... I don't believe you can get the module name in which the error occurred. -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "RB Smissaert" wrote in message ... Is there a way to get the VBE module and module line, given the procedure and erl where an error occured? The idea is to move straight to the line in the VBE where the error occured after handling the error. I have numbered the lines per procedure with MZ Tools. I can move to the line when I have the module and the module line: With ThisWorkbook.VBProject.VBComponents(strModule).Cod eModule.CodePane .SetSelection lStartLine, 1, lStartLine, 1 .Show End With I could make my error handler retain the module as well as the procedure, but even then I am not sure I could get to the module line. RBS |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Yes, but I can add the module name to the error handler.
Now if I have: - Module name - Procedure name - erl would I then be able to get the linenumber of the module? RBS "Chip Pearson" wrote in message ... As I said, you can't get the module name. Erl will return the line number of the error, assuming that line has a label, otherwise it will return the most recent line label. Sub AAA() 10: On Error Resume Next 20: Debug.Print 1 / 0 30: Debug.Print Err.Source, Err.Number, Err.Description, Erl End Sub displays VBAProject 11 Division by zero 20 in the Immediate window. -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "RB Smissaert" wrote in message ... OK, how about knowing the module name and the erl? RBS "Chip Pearson" wrote in message ... I don't believe you can get the module name in which the error occurred. -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "RB Smissaert" wrote in message ... Is there a way to get the VBE module and module line, given the procedure and erl where an error occured? The idea is to move straight to the line in the VBE where the error occured after handling the error. I have numbered the lines per procedure with MZ Tools. I can move to the line when I have the module and the module line: With ThisWorkbook.VBProject.VBComponents(strModule).Cod eModule.CodePane .SetSelection lStartLine, 1, lStartLine, 1 .Show End With I could make my error handler retain the module as well as the procedure, but even then I am not sure I could get to the module line. RBS |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
No, you can't get the text line number in code module.
-- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "RB Smissaert" wrote in message ... Yes, but I can add the module name to the error handler. Now if I have: - Module name - Procedure name - erl would I then be able to get the linenumber of the module? RBS "Chip Pearson" wrote in message ... As I said, you can't get the module name. Erl will return the line number of the error, assuming that line has a label, otherwise it will return the most recent line label. Sub AAA() 10: On Error Resume Next 20: Debug.Print 1 / 0 30: Debug.Print Err.Source, Err.Number, Err.Description, Erl End Sub displays VBAProject 11 Division by zero 20 in the Immediate window. -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "RB Smissaert" wrote in message ... OK, how about knowing the module name and the erl? RBS "Chip Pearson" wrote in message ... I don't believe you can get the module name in which the error occurred. -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "RB Smissaert" wrote in message ... Is there a way to get the VBE module and module line, given the procedure and erl where an error occured? The idea is to move straight to the line in the VBE where the error occured after handling the error. I have numbered the lines per procedure with MZ Tools. I can move to the line when I have the module and the module line: With ThisWorkbook.VBProject.VBComponents(strModule).Cod eModule.CodePane .SetSelection lStartLine, 1, lStartLine, 1 .Show End With I could make my error handler retain the module as well as the procedure, but even then I am not sure I could get to the module line. RBS |
#7
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I suppose I could get the .ProcStartLine and do a find within that block of
code for the erl, knowing they always start in column one. There is a small chance though it would find a non-erl number that is the same. RBS "Chip Pearson" wrote in message ... No, you can't get the text line number in code module. -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "RB Smissaert" wrote in message ... Yes, but I can add the module name to the error handler. Now if I have: - Module name - Procedure name - erl would I then be able to get the linenumber of the module? RBS "Chip Pearson" wrote in message ... As I said, you can't get the module name. Erl will return the line number of the error, assuming that line has a label, otherwise it will return the most recent line label. Sub AAA() 10: On Error Resume Next 20: Debug.Print 1 / 0 30: Debug.Print Err.Source, Err.Number, Err.Description, Erl End Sub displays VBAProject 11 Division by zero 20 in the Immediate window. -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "RB Smissaert" wrote in message ... OK, how about knowing the module name and the erl? RBS "Chip Pearson" wrote in message ... I don't believe you can get the module name in which the error occurred. -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "RB Smissaert" wrote in message ... Is there a way to get the VBE module and module line, given the procedure and erl where an error occured? The idea is to move straight to the line in the VBE where the error occured after handling the error. I have numbered the lines per procedure with MZ Tools. I can move to the line when I have the module and the module line: With ThisWorkbook.VBProject.VBComponents(strModule).Cod eModule.CodePane .SetSelection lStartLine, 1, lStartLine, 1 .Show End With I could make my error handler retain the module as well as the procedure, but even then I am not sure I could get to the module line. RBS |
#8
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
This Sub will do the job:
It is combined with some other code, but you can see. Sub GoToVBELine(Optional strModule As String, _ Optional strProcedure, _ Optional bFunction As Boolean = False, _ Optional lErl As Long = -1) Dim strCell As String Dim lBracketPos As Long Dim lSpacePos As Long Dim lStartLine As Long Dim lProcedureLine As Long Dim strSelection As String Dim i As Long On Error GoTo ERROROUT If Len(strModule) = 0 Then strModule = Cells(ActiveCell.Row, 1).Value End If If lErl = -1 Then 'get there from values in the sheet '---------------------------------- strCell = ActiveCell.Value lBracketPos = InStr(1, strCell, "(", vbBinaryCompare) lSpacePos = InStr(lBracketPos, strCell, Chr(32), vbBinaryCompare) lStartLine = Val(Mid$(strCell, lBracketPos + 1, lSpacePos - (lBracketPos + 1))) With ThisWorkbook.VBProject.VBComponents(strModule).Cod eModule.CodePane .SetSelection lStartLine, 1, lStartLine, 1 .Show End With Else 'get there from values from an error handler '------------------------------------------- With ThisWorkbook.VBProject.VBComponents(strModule).Cod eModule lProcedureLine = .ProcStartLine(strProcedure, vbext_pk_Proc) Do While .Find(CStr(lErl), _ lProcedureLine + i, _ 1, _ lProcedureLine + i, _ Len(CStr(Erl)) + 1, _ True, _ False) = False i = i + 1 Loop With .CodePane .SetSelection lProcedureLine + i, 1, lProcedureLine + i, 1 .Show End With End With End If Exit Sub ERROROUT: On Error GoTo 0 End Sub RBS "Chip Pearson" wrote in message ... No, you can't get the text line number in code module. -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "RB Smissaert" wrote in message ... Yes, but I can add the module name to the error handler. Now if I have: - Module name - Procedure name - erl would I then be able to get the linenumber of the module? RBS "Chip Pearson" wrote in message ... As I said, you can't get the module name. Erl will return the line number of the error, assuming that line has a label, otherwise it will return the most recent line label. Sub AAA() 10: On Error Resume Next 20: Debug.Print 1 / 0 30: Debug.Print Err.Source, Err.Number, Err.Description, Erl End Sub displays VBAProject 11 Division by zero 20 in the Immediate window. -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "RB Smissaert" wrote in message ... OK, how about knowing the module name and the erl? RBS "Chip Pearson" wrote in message ... I don't believe you can get the module name in which the error occurred. -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consulting, LLC www.cpearson.com "RB Smissaert" wrote in message ... Is there a way to get the VBE module and module line, given the procedure and erl where an error occured? The idea is to move straight to the line in the VBE where the error occured after handling the error. I have numbered the lines per procedure with MZ Tools. I can move to the line when I have the module and the module line: With ThisWorkbook.VBProject.VBComponents(strModule).Cod eModule.CodePane .SetSelection lStartLine, 1, lStartLine, 1 .Show End With I could make my error handler retain the module as well as the procedure, but even then I am not sure I could get to the module line. RBS |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
to call procedure in a worksheet in a module | Excel Discussion (Misc queries) | |||
Running a procedure in a module on graph change | Excel Programming | |||
Add Procedure To Module Via VBA | Excel Programming | |||
programmatically open VBE and go to a specified procedure in target module? | Excel Programming | |||
Lines in a Module(Procedure) | Excel Programming |