WHY THIS CLOSES EXCEL IF THERE´S NO SHEET NAMED AS...???

C

cbm

Hi, i´ve got a problem with this command button.
It deletes sheets named Tarea+nº and Acción+nº and works perfect
when these sheets already exist, but once i´ve deleted them i-ve got
an error when pussing again the button and excel gets closed asking me
if i want to send the error report.
I´ve already tried writing on error resume next everywhere (i´m a
beginner and don´t know the properly use of this function)


ANY IDEA??? THANKS A LOT!!!!


Private Sub CommandButton12_Click()


Dim wksH As Worksheet
Dim mtr(), n


For Each wksH In Worksheets
If Left(wksH.Name, 6) = "Acción" Then
n = n + 1
ReDim Preserve mtr(1 To n)
mtr(n) = wksH.Name
End If
Next
Worksheets(mtr()).Select


Set wksH = Nothing


For Each wksH In Worksheets
If Left(wksH.Name, 5) = "Tarea" Then
n = n + 1
ReDim Preserve mtr(1 To n)
mtr(n) = wksH.Name
End If
Next
Worksheets(mtr()).Select


Set wksH = Nothing
ActiveWindow.SelectedSheets.Delete


On Error Resume Next


End Sub
 
B

Bob Phillips

The problem seems to be that if you build an array of sheet names, and some
do not exist, none get selected.

Just change the code to delete them as you go

Private Sub CommandButton12_Click()

On Error Resume Next
Application.DisplayAlerts = False
For Each wksH In Worksheets
If Left(wksH.Name, 6) = "Acción" Or _
Left(wksH.Name, 5) = "Tarea" Then
wksH.Delete
End If
Next
Application.DisplayAlerts = True
On Error GoTo 0

Set wksH = Nothing

End Sub


--
HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

Hi, i´ve got a problem with this command button.
It deletes sheets named Tarea+nº and Acción+nº and works perfect
when these sheets already exist, but once i´ve deleted them i-ve got
an error when pussing again the button and excel gets closed asking me
if i want to send the error report.
I´ve already tried writing on error resume next everywhere (i´m a
beginner and don´t know the properly use of this function)


ANY IDEA??? THANKS A LOT!!!!


Private Sub CommandButton12_Click()


Dim wksH As Worksheet
Dim mtr(), n


For Each wksH In Worksheets
If Left(wksH.Name, 6) = "Acción" Then
n = n + 1
ReDim Preserve mtr(1 To n)
mtr(n) = wksH.Name
End If
Next
Worksheets(mtr()).Select


Set wksH = Nothing


For Each wksH In Worksheets
If Left(wksH.Name, 5) = "Tarea" Then
n = n + 1
ReDim Preserve mtr(1 To n)
mtr(n) = wksH.Name
End If
Next
Worksheets(mtr()).Select


Set wksH = Nothing
ActiveWindow.SelectedSheets.Delete


On Error Resume Next


End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top