Excel - ayuda con una macro

   
Vista:

ayuda con una macro

Publicado por vanessa celis (1 intervención) el 09/10/2007 18:05:27
Hola ....tengo un problema.....estoy diseñando una hoja de calculo en Excel usando algunas macros.

Estoy creando un cuadro sinóptico donde el siguiente nivel aparece al hacer click sobre algunos objetos (cuadros, líneas, círculos) y luego cuando ha sido desplegado todo, asigné una macro a un dibujo para que borrara todo el cuadro sinóptico. Sin embargo, si no quiero desplegar todo el cuadro sinóptico y quiero borrar los niveles hasta donde van...me sale error porque la macro que usé para borrar no encuentra todos los objetos.

Macro para borrar

ActiveSheet.Shapes("34").Select
Selection.Delete
ActiveSheet.Shapes("35").Select
Selection.Delete
ActiveSheet.Shapes("36").Select
Selection.Delete
ActiveSheet.Shapes("37").Select
Selection.Delete
ActiveSheet.Shapes("38").Select
Selection.Delete

Cada número corresponde al nombre de un objeto(líneas, flechas ,cuadros) asignando mediante una instrucción como la siguiente:

ActiveSheet.Shapes.AddLine(465.75, 1046.25, 549.75, 1046.25).Select
selection.name="34"

Entonces lo que quiero hacer es que si el objeto no existe no me salga error ...que la macro para borrar verifique la existencia y si no existe, salte a la siguiente línea y verifique si el siguiente objeto existe y asi sucesivamente hasta terminar.

Pensé en cambiar un poco la estructura de la macro para borrar agregando un If asi:

If (ActiveSheet.Shapes("34").Visible = True) Then
ActiveSheet.Shapes("34").Select
Selection.Delete
Else

End If

pero no se que colocar en el Else para que haga el salto en la instrucción o para que no me muestre error cuando no encuentra el objeto.

Gracias ...espero de verdad puedan colaborarme
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda con una macro

Publicado por Abraham Valencia (2418 intervenciones) el 09/10/2007 18:10:58
Pues para no complicarte, al inicio de la macro coloca:

On Error Resume Next

Abraham
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda con una macro

Publicado por José Luis (700 intervenciones) el 09/10/2007 18:13:50
Tratamiento de errores. Ejemplo

z=1000
h=0

'Establece el control de errores, si ocurre alguno saltará a la etiqueta TrataError

On Error GOTO TrataError
'Aquí ocurrirá un error por división entre 0
J = z/h
J = J*J

...
...
...

TrataError: '
RESUME NEXT

'Fin del código
Busca ON ERROR GOTO en la caja de búsqueda de este site y tendrás más ejemplos

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar