Thread: error 400...
View Single Post
  #10   Report Post  
Posted to microsoft.public.excel.programming
Thomas Thomas is offline
external usenet poster
 
Posts: 107
Default error 400...

Hi Jim,
I looked at it for some time trying to figure out why it's not working.
Aparently, there's a non-existant worksheet called Bill001 on the VBA Project
Explorer. Since it does not exist in excel, it kicks out of the loop when the
code tries to delete the nonexistant worksheet. I slapped on an if statement
to delete all worksheets except for that one, and it finishes the loop with
the correct actions of deleting the page. Any idea how to get rid of the
nonexistant worksheet "Bill001" on the VBA Project Explorer.
Thanks for your help,
thomas

"Jim Thomlinson" wrote:

Is your workbook protected. If the book is protected (not the sheet but the
book) then you can not delete any sheets...
Add this code...

Sub DeleteSheets()
Dim wks As Worksheet
On Error GoTo ErrorHandler

Thisworkbook.unprotect 'Add a password if necessary
Application.DisplayAlerts = False
For Each wks In Worksheets
If InStr(UCase(wks.Name), "BILL") 0 Then wks.Delete
Next wks
Application.DisplayAlerts = True

exit sub
ErrorHandler:
Application.DisplayAlerts = True
msgbox "Abnormal termination..."
End Sub
--
HTH...

Jim Thomlinson


"thomas" wrote:

No just one msgbox. I get only two. "let the deleting begin" and then that
one. I think I figured it out though. Just don't know how to solve. I have a
loop to where it makes copies of the bill sheet which I posted just a second
ago. Please read that post and tell me what you think.
Thanks,
Thomas

"Jim Thomlinson" wrote:

Ok you have lost me. You can only have one sheet named Bill001, but you are
saying that you get two message boxes saying "Bill001 Delete"?
--
HTH...

Jim Thomlinson


"thomas" wrote:

I got to remember to use msgbox to help solve problems. It's not going
through the code because there is no worksheet of "Bill001" Which is the
second (also is the last) msgbox which says "Bill001 Delete". Can't delete
because it's not there so it breaks out of the code, I guess. Any ideas on
how to fix.
Thank you,
Thomas

"Jim Thomlinson" wrote:

Here is the code with a couple of message boxes. Let me know if when the code
is run if any message boxes pop up or not...

Sub DeleteSheets()
Dim wks As Worksheet
On Error GoTo ErrorHandler

msgbox "Let the deleteing begin..."
Application.DisplayAlerts = False
For Each wks In Worksheets
If InStr(UCase(wks.Name), "BILL") 0 Then msgbox wks.name & _
" Delete"
If InStr(UCase(wks.Name), "BILL") 0 Then wks.Delete
Next wks
msgbox "All Done..."
ErrorHandler:
Application.DisplayAlerts = True

End Sub

--
HTH...

Jim Thomlinson


"thomas" wrote:

I must be doing something wrong because the code has no response. Perhaps
it's how I call the DeleteSheets(). Can you give me an example of how to call
it.
Thank you,
Thomas

"Jim Thomlinson" wrote:

My fault on your last thread... I just posted the response...

Sub DeleteSheets()
Dim wks As Worksheet
On Error GoTo ErrorHandler

Application.DisplayAlerts = False
For Each wks In Worksheets
If InStr(UCase(wks.Name), "BILL") 0 Then wks.Delete
Next wks
ErrorHandler:
Application.DisplayAlerts = True

End Sub

--
HTH...

Jim Thomlinson


"thomas" wrote:

I get an error Visual Basic "400" message when this code is ran:

Sub DeleteSheets()
Dim wks As Worksheet

Application.DisplayAlerts = False
For Each wks In Worksheets
If InStr("Bill (", wks.Name) 0 Then wks.Delete
Next wks

Application.DisplayAlerts = True

End Sub


How can I fix this?

Thank you,
Thomas