Jump to content
SALAVERRINO

Eliminar Botones Control de Formularios

Recommended Posts

Buenos noches a los integrantes de este foro, en esta ocasión recurro a uds., en como mejorar la macro que me permita eliminar los botones de control de formulario, pero me tope con un botón que no puedo eliminar, desde ya agradezco su apoyo y colaboración.


Saludos.

Sub Elimina_botones_del_tipo_Ctrl_de_formulario()
Dim ws As Worksheet, i%
For Each ws In ActiveWorkbook.Worksheets
  For i = ws.Shapes.Count To 1 Step -1
    If ws.Shapes(i).Type = msoFormControl Then
      If ws.Shapes(i).FormControlType = xlButtonControl Then ws.Shapes(i).Delete
    End If
  Next
Next
End Sub

 

BASES DE DATOS.xlsm

Share this post


Link to post
Share on other sites

1) no descargué tu archivo, pero si no lo elimina la macro que usas (es más seguro que probable que) NO es un control del tipo buscado (?)

2) si son controles "de formulario" pasan por una colección de objetos intrínsecos de excel (no requieres bucles por los controles, sólo por las hojas):

Sub eliminaBotonesXL()
  Dim hoja As Worksheet
  For Each hoja In Worksheets
    hoja.Buttons.Delete
  Next
End Sub

saludos,
hector.

Share this post


Link to post
Share on other sites

Hola

El botón que no borra tu rutina es un control ActiveX, no un botón de formulario, entonces su enumeración "Type" es "msoOLEControlObject" y no "msoFormControl"; además de eso la propiedad  "FormControlType" no puede ser usada en los controles ActiveX entonces ¿el archivo es de ejemplo o es todo lo que tienes? De ser un ejemplo asumo que tienes otros controles ademas de botones y por eso los "identificadores" ¿cierto? 

Abraham Valencia

Share this post


Link to post
Share on other sites

Macros para eliminar controles ActiveX.

(http://www.vbaexpress.com/kb/getarticle.php?kb_id=599)
 

 
Sub EliminarControlesActiveX() 'Todos los controles ActiveX
   For Each Control In ActiveSheet.OLEObjects
      Control.Delete
   Next
End Sub
'--
Sub EliminarBotonesActiveX() 'Solo botones ActiveX
   For Each Botón In ActiveSheet.OLEObjects
      If Botón.progID = "Forms.CommandButton.1" Then Botón.Delete
   Next
End Sub
Edited by Antoni

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.

Legitimación: Consentimiento del interesado.

Destinatarios: Hetzner Online GmbH.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.




×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png