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
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


0