¿Como eliminar botones, sin borrar otros elementos de la página?

27/07/2004 - 10:39 por gema.bernardo | Informe spam
Hola gente!

Estoy realizando una hoja excel que necesita crear botones dinamicamente y
luego poder borrarlos.

El crearlos no me da problemas.Para el borrado me he creado una funcion
como la que muestro a continuacion:

Private Sub BorrarBoton( _
ByVal Hoja As Worksheet, _
ByVal Celda As String)
Dim Boton As Shape
Dim encontrado As Boolean

encontrado = False

On Error Resume Next

With Hoja

For Each Boton In .Shapes

If Boton.FormControlType = xlButtonControl Then
If Not IsNull(Boton.TopLeftCell.Address) And Not encontrado Then

If Boton.TopLeftCell.Address = Range(Celda).Address Then

Boton.Delete
encontrado = True
End If
End If
End If
Next
''' P
'''Hoja.Protect C_PWD, True
End With
End Sub


Tal y como está, no me da error al intentar hacer Boton.FormControlType y
Boton.TopLeftCell.Address, cuando hay otro elemento shape que no es un
boton, peroooooo resulta q al ejecutarlo se me borran elementos validation
que tengo en la hoja y es imposible recuperar ese formato.

Y sI elimino "On error resume next", no me los borra, pero me da error de
ejecucion al intentar acceder a Boton.FormControlType y
Boton.TopLeftCell.Address.


Alguien puede ayudarme con esto??? alguna solucion pleeeease, me urge
bastante.

Gracias por adelantado.
Un saludo,
Gema.
 

Leer las respuestas

#1 Luis Garcia
27/07/2004 - 12:48 | Informe spam
"Gema" escribió en...
Hola gente!

Y sI elimino "On error resume next", no me los borra, pero me da error de
ejecucion al intentar acceder a Boton.FormControlType y
Boton.TopLeftCell.Address.

Alguien puede ayudarme con esto??? alguna solucion pleeeease, me urge
bastante.




No me he mirado el codigo, pero te comento una cosa:

Si una propiedad genera error en un IF y tu tienes On Error Resume next, la
ejecución continua dentro del IF, asi que cuidadin. Posible solucion:

bOk = False
bOk = (Boton.FormControlType = xlButtonControl)
If bOk then
''' Ahora solo entrara aqui cuando la condicion es cierta y sin error
End If

Suerte

Luis

Preguntas similares