Home |
Search |
Today's Posts |
#9
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Chip Pearson covers it in great detail:
http://cpearson.com/excel/ErrorHandling.htm Karen53 wrote: Hi Dave, If On Error Resume Next is used, how long does it stay in effect? Does it stay in effect for the entire procedure and any sub procedures it calls? What is it's scope? -- Thanks for your help. Karen53 "Dave Peterson" wrote: There's a lot of "more code", but this untested, uncompiled code may be closer: Option Explicit Sub GetTenantInfo() Dim wbkCopyFrom As Workbook Dim wbkCopyFromName As String Dim wbkCopyTo As Workbook Dim FromwbkPath As Variant 'I like to see "As Variant" Dim ShName As String Dim CopyWSError As Boolean CopyWSError = False Set wbkCopyTo = ThisWorkbook FromwbkPath = Application.GetOpenFilename(Filefilter:="Excel Files, *.xls") If FromwbkPath = False Then Exit Sub 'user hit cancel End If 'just the filename wbkCopyFromName = Mid(FromwbkPath, InStrRev(FromwbkPath, "\") + 1) On Error Resume Next 'you don't use the whole path--just the filename here Set wbkCopyFrom = Workbooks(wbkCopyFromName) On Error GoTo 0 If wbkCopyFrom Is Nothing Then On Error Resume Next Set wbkCopyFrom = Workbooks.Open(Filename:=FromwbkPath) On Error GoTo 0 If wbkCopyFrom Is Nothing Then MsgBox "Cannot Open originating file--in use or wrong password?" Exit Sub Else Application.StatusBar = "Processing. Please Wait." Application.ScreenUpdating = False Application.EnableEvents = False Application.Calculation = xlCalculationManual 'My Code 'copy the sheet Call AddSheets.UnProtectWkbook On Error Resume Next CAMMaster.Copy After:=Sheets(ShNumber) If Err.Number < 0 Then Err.Clear CopyWSError = True GoTo Finished Else 'no error occurred End If On Error goto 0 'name the sheet ActiveSheet.Name = ShName Call ProtectSht(ShName) Call AddSheets.ProtectWkbook More Code wbkCopyTo.Save End If End If Finished: If CopyWSError = True Then wbkCopyTo.Save 'save it even if there was an error????? MsgBox "Maximum tenant sheets copied." & vbLf _ & "Close workbook, reopen and restart 'Recreate Tenant Sheets'" End If Application.Calculation = xlCalculationAutomatic Application.EnableEvents = True Application.ScreenUpdating = True Application.StatusBar = False End Sub Karen53 wrote: Hi Dave, This is what I'm trying to do using part of what you posted. Will this work? I'm trying to capture when the worksheet copy errors out and prompt the user what to do. Sub GetTenantInfo() Dim wbkCopyFrom As Workbook Dim wbkCopyTo As Workbook Dim FromwbkPath Dim ShName As String Dim CopyWSError As Boolean CopyWSError = False Set wbkCopyTo = ThisWorkbook FromwbkPath = Application.GetOpenFilename On Error Resume Next Set wbkCopyFrom = Workbooks(FromwbkPath) If wbkCopyFrom Is Nothing Then Set wbkCopyFrom = Workbooks.Open(FromwbkPath) On Error GoTo 0 If wbkCopyFrom Is Nothing Then MsgBox "Cannot find originating file" Else Application.StatusBar = "Processing. Please Wait." Application.ScreenUpdating = False Application.EnableEvents = False Application.Calculation = xlCalculationManual My Code 'copy the sheet Call AddSheets.UnProtectWkbook CAMMaster.Copy After:=Sheets(ShNumber) If Err.Number < 0 Then Err.Clear CopyWSError = True GoTo Finished Else 'no error occurred End If 'name the sheet ActiveSheet.Name = (ShName) Call ProtectSht(ShName) Call AddSheets.ProtectWkbook More Code Application.Calculation = xlCalculationAutomatic Application.EnableEvents = True Application.ScreenUpdating = True Application.StatusBar = False wbkCopyTo.Save End If End If Finished: If CopyWSError = True Then wbkCopyTo.Save MsgBox "Maximum tenant sheets copied." & vbLf _ & "Close workbook, reopen and restart 'Recreate Tenant Sheets'" End If End Sub -- Thanks for your help. Karen53 "Dave Peterson" wrote: On error resume next 'you're expecting that the next line MIGHT cause an error 'your code if err.number < 0 then msgbox err.description & vblf & err.number err.clear else 'no error occurred end if on error goto 0 'let excel handle the errors Karen53 wrote: Hi, How do I capture a Run-time error '1004': Copy Method of Worksheet Class failed or the like so I retain control of the code? -- Thanks for your help. Karen53 -- Dave Peterson -- Dave Peterson -- Dave Peterson |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
run time error 1004 general odbc error excel 2003 vba | Excel Programming | |||
Error Capture Problem | Excel Discussion (Misc queries) | |||
Capture OLE Error | Excel Programming | |||
Run Time Error 1004: Application or Object Defined Error | Excel Programming | |||
run-time error '1004': Application-defined or object-deifined error | Excel Programming |