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

Preguntas similare

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
Respuesta Responder a este mensaje
#2 Héctor Miguel
27/07/2004 - 13:25 | Informe spam
hola, Gema !

... crear botones dinamicamente y luego poder borrarlos.
... crearlos no me da problemas.Para el borrado me he creado una funcion [...]
... al ejecutarlo se me borran elementos validation que tengo en la hoja y es imposible recuperar ese formato.
... sI elimino "On error resume next", ... me da error ... Boton.FormControlType y Boton.TopLeftCell.Address.



'regresando' a que estas creando/eliminando botones de la barra de herramientas 'formularios'...
'comparten' =>el mismo tipo<= de objetos shape que los combos de listas de validacion [FormControlType]
[la ventaja es que...] 'difieren' en el =>sub-tipo<= los botones son xlButtonControl y los combos son xlDropDown ;)
para 'omitir' la sentencia 'On Error Resume Next'... que ya sabemos que 'pudiera' causar 'otros destrozos' :((
=>'pasa'<= los objetos shape por varios 'filtros' hasta 'llegar' [exclusivamente] a los botones :))
el procedimiento para eliminar 'el boton indicado' quedaria +/- como sigue...
en un modulo de codigo 'normal' ==Private Sub EliminarBoton( _
ByVal Hoja As Worksheet, _
ByVal Celda As String): Dim Boton As Shape
With Hoja
For Each Boton In .Shapes
If Boton.Type = msoFormControl Then
If Boton.FormControlType = xlButtonControl Then
If Boton.TopLeftCell.Address = Range(Celda).Address Then Boton.Delete
End If
End If
Next
End With
End Sub

¿comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#3 gema.bernardo
27/07/2004 - 13:43 | Informe spam
MUCHAS GRACIAS CHICOS!!!

No sabeis bien del lio que me habeis sacado y algo mas que he aprendido!!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida